调整 UIViewController 中的视图大小
Posted
技术标签:
【中文标题】调整 UIViewController 中的视图大小【英文标题】:Resize the View inside a UIViewController 【发布时间】:2013-04-12 10:01:04 【问题描述】:我在 Storyboard 应用程序中有一个 UIViewController
。
在设置 segue 时会自动添加导航栏,并且我已从 IB 将UIToolBar
添加到底部。
在运行时,UIScrollView
作为视图添加到视图控制器。导致的问题是它与之前添加的UIToolBar
重叠。所以我添加了以下行并将工具栏拉回前面。
self.mailOptionsToolbar.layer.zPosition = 1;
现在看起来不错,但还有一个小问题。当我单击UIToolBar
中的工具栏按钮项时,它们不起作用。比如说,在滚动视图中,如果 UITextbox 位于这些按钮的正下方,当我单击它们时,它会弹出键盘!就像点击通过UIToolBar
下降到下面的 UITextField 一样。我怎样才能阻止这种情况发生?
我也在想另一种方法。那就是调整UIScrollBar
的大小以仅适合空白区域,这样它就不会首先覆盖UIToolBar
,从而不会产生这个点击问题。但我不知道如何使在运行时添加的UIScrollView
仅适合白色区域。
我们将不胜感激对这两个方面的建议。
谢谢。
【问题讨论】:
【参考方案1】: CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
// 20.0f is for status bar height and 44.0f is for navigation bar
CGFloat scrollViewHeight = screenHeight - 20.0f - 44.0f - self.mailOptionsToolbar.frame.size.height;
CGRect frame = [CGRectMake(0, 0, 320.0f, scrollViewHeight)];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame];
【讨论】:
以上是关于调整 UIViewController 中的视图大小的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Interface Builder 中的 UIViewController 中自动调整 UIView Outlet 的大小