我有以下代码来创建一个滚动视图,在图像的开头和结尾有一个额外的区域(50分)。
UIScrollView* scroll = [[UIScrollView alloc] initWithFrame: CGRectMake(0,0,200,100)];
scroll.contentSize = CGSizeMake(400,100);
UIImageView* img1 = [[UIImageView alloc] initWithFrame: CGRectMake(50,0,100,100);
UIImageView* img2 = [[UIImageView alloc] initWithFrame: CGRectMake(150,0,100,100);
UIImageView* img3 = [[UIImageView alloc] initWithFrame: CGRectMake(250,0,100,100);
//Adding images to ImageViews
scroll.pagingEnabled = YES;
[scroll addSubView:img1];
[scroll addSubView:img2];
[scroll addSubView:img3];
第一次看到视图时,我会看到左边的附加区域(0-50),然后是第一张图像(50-150),然后是第二张图像的一半(150-200)。 当我向左滑动时,我希望看到右侧第一张图像的一半,中间的第二张图像和右侧第三张图像的一半。
当我再次向左滑动时,我想在中间看到第三张图像,左边是第二张图像的一半,右边是附加区域。
可以吗?
答案 0 :(得分:0)
只要您正确定义所有内容,就可以。确保指定的内容大小等于您希望滚动的整体大小。确保每个页面大小等于滚动视图的框架。如果框架剪切您的子视图,您可以将clipsToBounds
设置为NO。
答案 1 :(得分:0)
您可以通过调整UIScrollView的contentSize
来完成此操作- (void)addImagesToScrollView{
//An offset from where imageViewStarts
CGFloat xOffset = 50.0f;
CGRect imageViewFrame = CGRectMake(xOffset, 0.0f, 100.0f, 100.0f);
for (NSString *imageName in @[@"image1.jpg",@"image2.jpg",@"image3.jpg"])
{
UIImageView *imageView = [[UIImageView alloc]initWithFrame:imageViewFrame];
UIImage *image = [UIImage imageNamed:imageName];
imageView.image = image;
[self.scrollView addSubview:imageView];
imageViewFrame.origin.x+=imageViewFrame.size.width;
}
CGSize contentSize = self.scrollView.frame.size;
//Content size is calculate from the imageViewFrame and an offset is added to it
contentSize.width = imageViewFrame.origin.x+xOffset;
[self.scrollView setContentSize:contentSize];
}
答案 2 :(得分:0)
您可以使用以下代码滚动到滚动视图中的特定位置
[YOURSCROLLVIEW setContentOffset:CGPointMake(x, y) animated:YES];