【问题标题】:Interface Builder: Resize View From NIB界面生成器:从 NIB 调整视图大小
【发布时间】:2010-06-09 12:14:05
【问题描述】:

我有一个自定义 UIViewController 和一个 nib 文件中的相应视图。视图直接添加到UIWindow中。

[window addSubview:customViewController.view];

窗口和视图的尺寸是默认的(480x320460x320对应)。

当我在 nib 文件中创建 CustomViewController 并在 IB 属性选项卡中检查 "Resize View From NIB" 时,一切正常。

但是,当我使用 initWithNibName 消息以编程方式创建 CustomViewController 时,视图未正确定位在窗口上。底部有一条空条纹。它的高度是20px。我看到这是因为状态栏偏移。

IB 使用 “Resize View From NIB” 来处理这个问题。 如何以编程方式模拟?

似乎 IB 使用了 UIViewController 的一些自定义子类。那么问题来了:“Resize View From NIB”是如何在那里实现的?

【问题讨论】:

    标签: objective-c cocoa-touch uiview uiviewcontroller interface-builder


    【解决方案1】:

    当我想确保视图覆盖整个屏幕时,我会这样做:

    - (void) viewWillAppear: (BOOL) animated
    {
        [super viewWillAppear:animated];
        [[self view] setFrame:[[UIScreen mainScreen] bounds]];
    }
    

    感觉像是一个 hack,所以我只是在万不得已的时候才这样做,当我无法让视图以其他方式表现时:)

    【讨论】:

    • 试过了,但对我不起作用。底部出现相同的条纹。
    • [[self view] setFrame:CGRectMake(0, 20, 320, 480)];这可行,但看起来像是某种硬编码。 [[UIScreen mainScreen] bounds]] 返回 (0, 0, 320, 480)。
    • 你应该使用 applicationFrame 代替:self.view.frame = {CGPointZero,[UIScreen mainScreen].applicationFrame.size]};
    • 这对我也不起作用!设置后,它恢复了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多