Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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_Frame_Gesture_Bounds - Fatal编程技术网

Ios UIScrollView交互区域不随帧/内容大小更新

Ios UIScrollView交互区域不随帧/内容大小更新,ios,uiscrollview,frame,gesture,bounds,Ios,Uiscrollview,Frame,Gesture,Bounds,我有一个UIScrollView,它从一个纵向方面开始,然后(在设备旋转后)移动到另一个框架,这是一个横向方面 相应地,内容视图(UIScrollView中的UIView)被更新,我设置了UIScrollView的contentSize 问题是-旋转后-UIScrollView有一个新帧、新内容和新内容大小,但用户可以在其中滑动的区域的行为仍然像原始帧/内容一样 图1显示了原始方面/图2显示了新方面,其中奇数区域可用于用户的滑动手势 正如你所料,我已经在滚动视图中修改了很多设置,如边界等,但迄

我有一个UIScrollView,它从一个纵向方面开始,然后(在设备旋转后)移动到另一个框架,这是一个横向方面

相应地,内容视图(UIScrollView中的UIView)被更新,我设置了UIScrollView的contentSize

问题是-旋转后-UIScrollView有一个新帧、新内容和新内容大小,但用户可以在其中滑动的区域的行为仍然像原始帧/内容一样

图1显示了原始方面/图2显示了新方面,其中奇数区域可用于用户的滑动手势

正如你所料,我已经在滚动视图中修改了很多设置,如边界等,但迄今为止没有任何东西“修复”了这种行为

如果您能深入了解为什么会发生这种行为和/或如何将用户交互区域设置为滚动视图的帧/边界,我们将不胜感激

编辑2:

此层次结构中有3个视图
Lanscape
主视图帧{0,01024748}
结果视图框{633,90361677}
滚动视图帧{20,60340595}

肖像画

mainView帧{0,05321240}您是否尝试在对象上使用以下方法

[_yourView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];

听起来您的滚动视图的superview没有正确调整大小。您可以通过记录[myScrollView superview]并查看该视图是否按预期调整大小来验证这一点


如果superview没有调整大小,那么它不会将触控传递到scrollview,这解释了您看到的行为。(这也解释了为什么在设置为自动调整大小掩码时它会调整大小。)

我没有尝试过这一点-在这个阶段,我愿意牺牲一只山羊或至少几只鸡)-所以稍后会尝试。好的,已经尝试过了-scrollview框架现在与交互区域的宽度完全匹配(即远小于滚动视图的预期宽度)。还尝试确保将scrollview带到主容器的前面-没有问题。通过这样做,我可以看到superview的框架始终足够大,可以容纳scrollview的框架。还有什么我需要查找的吗?为什么不编辑您的问题以显示scrollview的框架和superview的框架?(根据您的层次结构,在视图控制器的视图上显示更多的超级视图可能会很有用)。您也可以尝试
mycrollview.superview.autoresizesSubviews=NO;