界面生成器:从 NIB 调整视图大小
Posted
技术标签:
【中文标题】界面生成器:从 NIB 调整视图大小【英文标题】:Interface Builder: Resize View From NIB 【发布时间】:2010-06-09 12:14:05 【问题描述】:我有一个自定义 UIViewController 和一个 nib 文件中的相应视图。视图直接添加到UIWindow中。
[window addSubview:customViewController.view];
窗口和视图的尺寸是默认的(480x320和460x320对应)。
当我在 nib 文件中创建 CustomViewController 并在 IB 属性选项卡中检查 "Resize View From NIB" 时,一切正常。
但是,当我使用 initWithNibName 消息以编程方式创建 CustomViewController 时,视图未正确定位在窗口上。底部有一条空条纹。它的高度是20px。我看到这是因为状态栏偏移。
IB 使用 “Resize View From NIB” 来处理这个问题。 如何以编程方式模拟?
似乎 IB 使用了 UIViewController 的一些自定义子类。那么问题来了:“Resize View From NIB”是如何在那里实现的?
【问题讨论】:
【参考方案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]; 这对我也不起作用!设置后,它恢复了!以上是关于界面生成器:从 NIB 调整视图大小的主要内容,如果未能解决你的问题,请参考以下文章