【发布时间】:2012-01-10 17:53:48
【问题描述】:
我有一个 UIScrollView,它以纵向方面开始,随后(在设备旋转后)移动到另一个横向方面。
相应地,内容视图(UIScrollView 内的 UIView)被更新,我设置了 UIScrollview 的 contentSize。
问题是 - 旋转后 - UIScrollView 有一个新框架、新内容和新 contentSize,但用户可以在其中滑动的区域仍然表现得好像它是原始框架/内容。
图 1 显示了原始方面/图 2 显示了新的方面,其中奇数区域可供用户滑动手势使用。
如您所料,我已经修改了滚动视图中的许多设置,例如边界等,但迄今为止没有任何“修复”此行为。
任何关于为什么会发生这种行为和/或如何将用户交互区域设置为滚动视图的框架/边界的见解将不胜感激。
EDIT2:
此层次结构中有 3 个视图
风景
主视图框架 {0,0,1024,748}
结果视图框架 {633,90,361,677}
滚动视图框架 {20,60,340,595}
肖像
mainView 框架 {0,0,532,1240}
结果视图框架 {0,659,768,345}
滚动视图框架 {0,70,768,280}
此时 我进入了项目中的每个 nib,并确保关闭了自动调整大小,并且我还用不同的数字标记了每个视图,以便在当我检查框架时,我可以确定我所看到的内容是肯定的。
堆栈中的顶层视图是自动调整大小的,现在关闭它,我得到了肖像结果..
主视图框架 {0,0,768,1004} ..... 是的!赢.....
结果视图框架 {0,659,768,345}
滚动视图框架 {0,70,768,280}
编辑1:
将调整大小掩码设置为下面的 cmets 会减小滚动视图的可见大小以匹配交互区域 - 因此看起来滚动视图确实认为它的框架只是那个大小(768 看起来像 468 左右)。增加框架的宽度确实会增加滚动视图的大小,但是 只有 768 像素的全宽那么为什么 768 宽的框架看起来像 468 而 686 的框架看起来像568?!
【问题讨论】:
标签: ios uiscrollview frame gesture bounds