【发布时间】:2013-08-21 15:06:49
【问题描述】:
我的通用应用程序在其设置屏幕中使用 NIB。我想为 iPhone 和 iPad 使用相同的 NIB。
因此,在 iPad 上,我在 MainViewController 中使用 UIPopoverController 进行设置,只需显示 iPhone 大小的 NIB,以显示所谓的 SettingsViewController。弹出框大小为 320x460 点。
这会导致一个问题,因为 iPhone 版本以编程方式在状态栏上方绘制了许多东西,而对于 iPad 版本,这不是必需的。 iPad 上的现状:
如您所见,“设置”标题上方有一个很大的空白区域。因此,我想要的是将视图控制器向上移动大约 20 个点,在弹出框内:
弹出框在MainViewController中实例化如下:
settingsPopoverController = [[UIPopoverController alloc] initWithContentViewController:popoverNavigationController];
settingsPopoverController.popoverContentSize = CGSizeMake(320, 460);
settingsPopoverController.delegate = self;
popoverNavigationController.navigationBarHidden = YES;
在SettingsViewController中,我设置frame如下:
- (void)viewDidLoad
{
self.contentSizeForViewInPopover = CGSizeMake(320, 460);
}
稍后在 SettingsViewController 中,我尝试按如下方式创建偏移量:
- (void)viewWillLayoutSubviews
{
// shift it up
CGRect frame = self.view.frame;
frame.origin.y = -20;
[self.view setFrame:frame];
}
这不会使内容稍微上移。怎么办?
澄清一下:我想向下移动弹出框显示的“视口”。
【问题讨论】: