调整UIViewController内的视图大小

时间:2013-04-12 10:01:04

标签: ios cocoa-touch uiviewcontroller uiscrollview uitoolbar

我在Storyboard应用中有一个UIViewController

enter image description here

当设置了segue并且我从IB添加了UIToolBar到底部时,会自动添加导航栏。

在运行时,UIScrollView作为视图添加到视图控制器中。导致的问题是它与之前添加的UIToolBar重叠。所以我添加了以下行并将工具栏拉回到前面。

self.mailOptionsToolbar.layer.zPosition = 1;

现在它显得很好,但仍然存在一个小问题。当我点击UIToolBar中的工具栏按钮项时,它们就不起作用了。比如,在滚动视图中,如果UITextbox位于任何这些按钮的正下方,当我点击它们时会弹出键盘!就像点击通过UIToolBar下降到下面的UITextField一样。我怎样才能阻止这种情况发生?

我也想到了另一种方式。这是调整UIScrollBar的大小以仅适合白色间隔区域,以便它不会首先掩盖UIToolBar因此不会产生此点击问题。但我不知道如何使运行时添加的UIScrollView仅适合白色区域。

对这两方面的建议将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分: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];