我创建了一个可缩放的UIScrollView并为其添加了100个子视图(平铺)。视图向左和向右滚动。但是,我想允许缩放。
为此,我读到我的代表需要实现:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return ???;
}
我见过只有一个子视图可以缩放的例子,所以他们在那个方法中返回那个子视图。然而,就我而言,我还有更多。缩放的正确方法是什么?
我尝试创建另一个UIView并将100个子视图添加到那个。然后在上面的方法中返回一个视图,但我不起作用(它缩放,但一旦停止,它就不再是交互式的。)
答案 0 :(得分:43)
完全,
这也是Apple在Scroll View Programming Guide中提到的:
只需创建一个视图,将所有子视图添加到此视图,并将新创建的视图作为单个子视图添加到滚动视图...
然后在viewForZoomingInScrollView委托方法中返回索引0处的对象:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return [self.scrollView.subviews objectAtIndex:0];
}
答案 1 :(得分:2)
我创建了视图,我在其中添加了所有内容:
UIView *zoomableView = [[UIView alloc] init];
没有设置框架。
在将所有子视图添加到其中后,我将其框架设置为足以容纳所有平铺子视图的内容时,问题得以解决。
答案 2 :(得分:0)
您必须返回要添加视图的内容以滚动视图作为子视图。
例如:如果要将图像视图添加到滚动视图,则写入
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imageView object;
}