gpt4 book ai didi

ios - 在 UIPopoverController 中移动框架

转载 作者:行者123 更新时间:2023-11-28 17:54:17 25 4
gpt4 key购买 nike

我的通用应用程序将 NIB 用于其设置屏幕。我想为 iPhone 和 iPad 使用相同的 Nib 。

因此,在 iPad 上,我在 MainViewController 中使用 UIPopoverController 并进行设置,只需显示 iPhone 大小的 NIB,以显示所谓的 SettingsViewController。弹出窗口的大小为 320x460 点。

这导致了一个问题,因为 iPhone 版本以编程方式在状态栏上方绘制了一些东西,而对于 iPad 版本,这不是必需的。 iPad 上的现状:

enter image description here

如您所见,“设置”标题上方有一个很大的空白区域。因此,我想要的是将 View Controller 向上移动大约 20 个点,在弹出框内:

enter image description here

弹出窗口在 MainViewController 中实例化如下:

        settingsPopoverController = [[UIPopoverController alloc] initWithContentViewController:popoverNavigationController];
settingsPopoverController.popoverContentSize = CGSizeMake(320, 460);
settingsPopoverController.delegate = self;
popoverNavigationController.navigationBarHidden = YES;

在 SettingsViewController 中,我将框架设置如下:

- (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];
}

这不会将内容向上移动一点。怎么走?

澄清一下:我想向下移动弹出窗口显示的“视口(viewport)”。

最佳答案

尝试:

myPopover.autoresizingMask=UIViewAutoresizingNone;

或者:

myPopover.autoresizingMask=UIViewAutoresizingFlexibleHeight || UIViewAutoresizingFlexibleWidth;

您也可以尝试将代码放在 -(void)viewDidLayoutSubviews 方法中。如果此答案没有帮助,请尝试设置 popoverLayoutMargins(属性)而不是 setFrame: 例如:

popover.popoverLayoutMargins=UIEdgeInsetsMake (
CGFloat 50, //top
CGFloat 50,//left
CGFloat 50,//bottom
CGFloat 50//right
);

关于ios - 在 UIPopoverController 中移动框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com