UIScrollView 作为 UISplitViewController 中的根视图
Posted
技术标签:
【中文标题】UIScrollView 作为 UISplitViewController 中的根视图【英文标题】:UIScrollView as the root view in a UISplitViewController 【发布时间】:2011-04-18 22:48:06 【问题描述】:我有一个基本的 UISplitViewController,其中根视图控制器的视图(即不是详细视图)是 UIScrollView。问题是当我去设置 UIScrollView 的内容大小时,我看到 frame.size.width 在运行时是 768.0,即使 Interface Builder 显示宽度为 320.0。
换句话说,我想执行以下操作,但宽度是 768.0 而不是 320.0。有什么想法吗。提前致谢!
self.dayScrollView.contentSize = CGSizeMake(dayScrollView.frame.size.width, dayScrollView.frame.size.height * 2);
【问题讨论】:
【参考方案1】:UISplitViewController 会将视图控制器的大小调整为自己的内容大小,在纵向模式下(我不确定横向模式)肯定会是 768.0。只要您将上面的代码放在 viewWillAppear 或稍后调用的方法中,它就可以正常工作。如果我遗漏了什么,您可能需要详细说明。
【讨论】:
感谢克里斯蒂安!当我在 viewWillAppear 中设置 contentSize 时(我是在 viewDidLoad 中做的),Scroll View 的宽度是 320。 为了详细说明为什么需要这样做,视图是在添加到拆分视图控制器之前创建的。因此 viewDidLoad 将在添加到拆分视图控制器之前被调用。另一方面,viewWill/DidAppear 只有在它即将出现在屏幕上时才会被调用,也就是在它被添加到拆分视图控制器之后。以上是关于UIScrollView 作为 UISplitViewController 中的根视图的主要内容,如果未能解决你的问题,请参考以下文章
以 UIScrollView 作为子类的 UIView 不接收触摸事件