Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何选择正确的视图来缩放视图中的多个UIScrollView对象(iPhoneSDK obj-C)?_Iphone_Arrays_View_Uiscrollview - Fatal编程技术网

如何选择正确的视图来缩放视图中的多个UIScrollView对象(iPhoneSDK obj-C)?

如何选择正确的视图来缩放视图中的多个UIScrollView对象(iPhoneSDK obj-C)?,iphone,arrays,view,uiscrollview,Iphone,Arrays,View,Uiscrollview,我添加了几个UIScrollView作为单个UIView的子视图,并设置了框架,以便每个框架都清晰可见。我将scrollEnabled设置为YES,并将contentSize设置为大于bounds/frame。我在for循环中执行此操作,每次循环时,我都会释放UIScrollView(尽管对象仍然被存储,因为它已被子视图查看到UIView中)。这对于能够在存储在每个特定UIScrollView中的imageView上滚动非常有效,但我一辈子都不知道如何让缩放发挥作用。我在界面中包含了。以下是我尝

我添加了几个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]; 
}
。。。可能做不到你所期望的