如何选择正确的视图来缩放视图中的多个UIScrollView对象(iPhoneSDK obj-C)?
我添加了几个UIScrollView作为单个UIView的子视图,并设置了框架,以便每个框架都清晰可见。我将scrollEnabled设置为YES,并将contentSize设置为大于bounds/frame。我在for循环中执行此操作,每次循环时,我都会释放UIScrollView(尽管对象仍然被存储,因为它已被子视图查看到UIView中)。这对于能够在存储在每个特定UIScrollView中的imageView上滚动非常有效,但我一辈子都不知道如何让缩放发挥作用。我在界面中包含了。以下是我尝试过的选择正确视图进行缩放的方法:如何选择正确的视图来缩放视图中的多个UIScrollView对象(iPhoneSDK obj-C)?,iphone,arrays,view,uiscrollview,Iphone,Arrays,View,Uiscrollview,我添加了几个UIScrollView作为单个UIView的子视图,并设置了框架,以便每个框架都清晰可见。我将scrollEnabled设置为YES,并将contentSize设置为大于bounds/frame。我在for循环中执行此操作,每次循环时,我都会释放UIScrollView(尽管对象仍然被存储,因为它已被子视图查看到UIView中)。这对于能够在存储在每个特定UIScrollView中的imageView上滚动非常有效,但我一辈子都不知道如何让缩放发挥作用。我在界面中包含了。以下是我尝
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return [[myView subviews] objectAtIndex:pageNum];
}
及
两者似乎都不起作用。奇怪的是滚动效果很好。如果我输入NSLog调用,我甚至无法调用viewForZooming方法。有什么想法吗?我想我的头发都掉光了,因为我对这件事感到沮丧
编辑:非常感谢cduhn!我所需要的只是那个小小的碰撞,我忘了将scrollView委托设置为self。。。几个月来,我一直在使用各种利用UIScrollView的应用程序,并且一直正确地使用委托,最近的一个我不知道我的大脑去了哪里
但是,您不需要覆盖ScrollViewDiEndZooming:withView:atScale:,无论缩放后发生什么情况,代理都会调用它
而且,经过一点Tweek之后,这起作用了:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return [[[myView viewWithTag:pageNum] subviews] objectAtIndex:0];
}
这只是调用scrollView内部视图容器,然后获取其中的UIImage。。。效果很好 听起来您可能没有将UIScrollView上的委托属性设置为指向实现viewForZoomingInScrollView的对象: 还要注意UIScrollView类引用中的以下代码段: 要使缩放和平移正常工作,代理必须同时实现ViewForZoomingsCrollView:和ScrollViewDiEndZooming:withView:atScale:;此外,最大(最大缩放比例)和最小(最小缩放比例)缩放比例必须不同 最后,警告一句:访问UIScrollView的子视图时要小心。您的子视图并不孤单。UIScrollView将自己的UIImageView添加为自身的子视图,以实现其滚动条UI。所以像这样的代码
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return [[myView subviews] objectAtIndex:pageNum];
}
。。。可能没有达到预期效果。听起来您可能没有将UIScrollView上的委托属性设置为指向实现viewForZoomingInScrollView的对象: 还要注意UIScrollView类引用中的以下代码段: 要使缩放和平移正常工作,代理必须同时实现ViewForZoomingsCrollView:和ScrollViewDiEndZooming:withView:atScale:;此外,最大(最大缩放比例)和最小(最小缩放比例)缩放比例必须不同 最后,警告一句:访问UIScrollView的子视图时要小心。您的子视图并不孤单。UIScrollView将自己的UIImageView添加为自身的子视图,以实现其滚动条UI。所以像这样的代码
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return [[myView subviews] objectAtIndex:pageNum];
}
。。。可能做不到你所期望的