Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.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
Ios 子类化UIScrollView时的奇怪行为_Ios_Uiscrollview_Uigesturerecognizer_Uiscrollviewdelegate - Fatal编程技术网

Ios 子类化UIScrollView时的奇怪行为

Ios 子类化UIScrollView时的奇怪行为,ios,uiscrollview,uigesturerecognizer,uiscrollviewdelegate,Ios,Uiscrollview,Uigesturerecognizer,Uiscrollviewdelegate,我有一个滚动视图,其中包含数量可变的UIImageView子视图。我将UIScrollView子类化,因为我希望能够使用手势移动和调整图像大小,并执行一些其他自定义行为。当我在nib文件中将scroll视图切换到我的子类时,一些奇怪的事情发生了:当向上滚动时,scroll视图将垂直扩展并覆盖其他视图,并且底部边缘停止在全屏之外,并留下一个很大的间隙……但是当我将其更改回常规的UIScrollView时,一切正常。我不重写我的子类中的任何内容,也不在nib中设置任何我认为可能导致这种情况的内容……

我有一个滚动视图,其中包含数量可变的UIImageView子视图。我将UIScrollView子类化,因为我希望能够使用手势移动和调整图像大小,并执行一些其他自定义行为。当我在nib文件中将scroll视图切换到我的子类时,一些奇怪的事情发生了:当向上滚动时,scroll视图将垂直扩展并覆盖其他视图,并且底部边缘停止在全屏之外,并留下一个很大的间隙……但是当我将其更改回常规的UIScrollView时,一切正常。我不重写我的子类中的任何内容,也不在nib中设置任何我认为可能导致这种情况的内容……我所做的只是重写addSubview方法,在子视图添加到滚动视图时将手势识别器添加到子视图中,当然还有处理这些手势识别器的方法。你知道我做错了什么吗


提前谢谢

明白了!问题似乎是,我有一个名为handlePan的方法……通过这样做,我无意中覆盖了UIScrollView的一个同名方法。因此,我的handlePan(我原本只打算为我的子视图处理平移)处理所有平移,包括scrollview的内置平移,并导致奇怪的滚动。哎呀!问题已解决。

我试图重新创建项目,但无法重现该问题。有可能得到一个样本项目吗?也就是说,当事情开始以无意的方式突然发生时,我的第一个猜测是看看autolayout。尝试关闭故事板或nib的自动布局选项,看看是否会遇到同样的问题。不要认为我可以发布任何代码,因为这是一个公司项目,在NDA等项下。我正在缩小它的范围,尽管……当我注释掉我的子类的整个实现时,但仍然使用它(基本上,只是名义上的子类化)它工作正常…所以问题一定是在我的实现中,而不是在nib中。只要开始重新添加代码,直到我发现问题:)好的,这确实是我的平移手势造成的问题…当我重新添加时,滚动变得很奇怪。似乎在视图之间平移(我打算简单地使用滚动视图的内置平移)会触发所有子视图平移!我有多种方法可以攻击它……可能需要一个手势或另一个手势失败,或者测试平移是否在子视图的范围内(我认为我不必这么做)。