我在单个视图上显示两个图像,其中两个图像都必须具有缩放功能。我的页面高度约为1000像素,图像必须显示在页面的顶部和底部。为此,我在scroll views
添加了两个不同的滚动视图和添加的图像视图。
现在缩放对第二张图像正常工作。但是,缩小后,第一张图像会显示在scroll view
的左上角。似乎有两个图像。
以下是我正在使用的委托方法:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return [[scrollView subviews] objectAtIndex:0];
}
我有什么遗失的吗?或者,如果单页有两个scroll views
,则无法实现缩放。
答案 0 :(得分:4)
当单页有两个滚动视图时,以下是用于启用缩放的代码。
//创建第一个ImageView
image1 =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 220)];
image1.image = [UIImage imageNamed:@"image1.png"];
image1.contentMode = UIViewContentModeScaleToFill;
//为Scrollview 1创建和设置值
scroll1 =[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 220)];
scroll1.contentSize = image1.frame.size;
[scroll1 setMinimumZoomScale:1.0];
[scroll1 setMaximumZoomScale:4.0];
scroll1.delegate = self;
scroll1.clipsToBounds = YES;
scroll1.tag =0;
[scroll1 addSubview:image1];
image1.userInteractionEnabled =YES;
scroll1.zoomScale = 1;
[self.view addSubview:scroll1];
第二个Scrollview和ImageView
//创建第二个ImageView
image2 =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 260)];
image2.image = [UIImage imageNamed:@"image2.png"];
image2.contentMode = UIViewContentModeScaleToFill;
//创建第二个ScrollView
scroll2 =[[UIScrollView alloc] initWithFrame:CGRectMake(0, 220, 320, 260)];
scroll2.contentSize = image2.frame.size;
[scroll2 setMinimumZoomScale:1.0];
[scroll2 setMaximumZoomScale:4.0];
scroll2.delegate = self;
scroll2.clipsToBounds = YES;
scroll2.tag =1;
[scroll2 addSubview:image2];
image2.userInteractionEnabled =YES;
scroll2.zoomScale = 1;
[self.view addSubview:scroll2];
这对你有帮助,因为它已经为我工作了。
委托方法如下:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
if (scrollView.tag ==0) {
return image1;
}
else return image2;
}