使用 UIScrollView 旋转后出现奇怪的行为
Posted
技术标签:
【中文标题】使用 UIScrollView 旋转后出现奇怪的行为【英文标题】:After rotation strange behaviour with UIScrollView 【发布时间】:2012-03-19 09:57:07 【问题描述】:我有一个 iPad 应用程序,在我的一个视图中,我同时使用 UIScrollView 和 UIPageControl 在视图数组之间导航。当我的模拟器处于纵向模式时没有问题,但是当我将它旋转到横向时,滚动视图的下侧出现,我可以看到整个视图的每 100 个只有大约 30 个。我该如何解决这种情况,谁能帮忙?
编辑:我在已添加到 Scrollview 的子视图上动态添加了一些按钮子视图,有人可以提供有关如何检测设备方向并确定框架的任何想法。我需要类似下面的伪:
if(device_orientation == landscape)
subButton.frame=....;
textfield.frame=...;
else
subButton.frame=....;
textfield.frame=...;
我试过了,但我得到了黑屏..
EDIT-2 我对一些视图使用了界面生成器,并且有一些动态创建的视图。我在 .xib 文件上玩了一点 Autoresizing 属性,现在它看起来很完美,但是动态的(它们都是 UIButton 的子类的对象)不响应任何代码(调整大小、免费彩色照片等)
【问题讨论】:
你是如何为两个方向设置屏幕的?即元素是否应该重新定位/调整自己的大小,或者您是否有一个完全独立的横向视图? 我没有设置任何特殊/单独的视图。我的应用程序有四个视图控制器,其中两个是 UIViewController,一个是 UITableViewController,一个是这个,其中包含一个 UIScrollView。其他的在旋转时可以正常工作,但我使用的是 Scrollview(这里有一个视图数组,UIWebView 和 UIView 元素),我只是在这个视图控制器中感到痛苦 顺便问一下,您能否提供任何意见或教程链接,如何在旋转时调整大小/或单独创建视图? @ilis 查看 Apple 文档的 Autoresizing of Subviews。如果你使用interface builder,你实际上可以很容易地掌握这个概念。 【参考方案1】:您是使用界面构建器还是以编程方式创建视图? 如果您可以发布更多来源或屏幕截图,这将很有帮助,以便我们可以更清楚地看到正在发生的事情。作为黑暗中的刺,您可能想尝试将要调整大小的视图的“autoresizingMask”属性设置为“~UIViewAutoresizingNone”(非无/灵活)。如果您可以提供更多详细信息,我会尽力为您提供更多帮助:)
【讨论】:
感谢@Simon,我为一些视图使用了界面生成器,并且有一些动态创建的视图。我在 .xib 文件上使用了一些 Autoresizing 属性,现在它看起来很完美,但动态的(它们都是 UIButton 子类的对象)不响应任何代码(调整大小、免费彩色照片等)以上是关于使用 UIScrollView 旋转后出现奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章
使用 Storyboard 和 Autolayout 旋转到横向后,UIScrollView 中的 UIButtons 不可触摸?
更改界面方向时UIScrollView上的奇怪跳转(ATPagingView)
如何在 UIScrollView 中拉伸 UITextViews 以适应旋转后的水平尺寸?