objective-c - 界面生成器 : Resize View From NIB

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

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

[window addSubview:customViewController.view];

窗口和 View 的大小是默认的(480x320460x320)。

当我在 nib 文件中创建 CustomViewController 并在 IB Attributes 选项卡中选中 “Resize View From NIB” 时,一切正常。

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

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

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

最佳答案

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

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

感觉像是 hack,所以我只在万不得已时才这样做,当我无法让 View 以其他方式运行时:)

关于objective-c - 界面生成器 : Resize View From NIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3005645/

相关文章:

ios - 带有 Nib (.xib) 的自定义 UIView 的 subview 未加载?

objective-c - Objective-C 装饰器模式的简单实现

iphone - UITableView 有不同方向的不同行以及如何使可见单元格在旋转后显示相同的东西

ios - 发送到不可变对象(immutable对象)的变异方法 - [__NSCFDictionary setObject :forKey:]

ios - objective-C 。多个匿名类别?

ios - 设置 View 的背景颜色时如何避免平铺?

cocoa-touch - MPMoviePlayerController 不可逆地切换到playbackState "paused"

objective-c - 检查并删除 NSSet 中的对象

iphone - UIImageView 单元格 contentView 的 View 之一未与其父 View 一起扩展

iphone - 如何在不占据整个屏幕的 UIView 上使用 UIModalTransitionStylePartialCurl?