gpt4 book ai didi

ios - UIVIew 在 Storyboard 和 NIB 差异中调整大小

转载 作者:行者123 更新时间:2023-12-01 16:15:38 26 4
gpt4 key购买 nike

社区。有一些奇怪的 UIView 调整大小的东西,我无法理解。

假设我们有一个带有 Main.storyboard 的简单单 View 应用程序。
在 Storyboard 中,我正在创建 RedView .它的默认尺寸为 600x600。所有选项都是默认设置的。我没有改变任何东西。

现在,我正在使用 BlueView 创建 BlueView.xib ,并且它具有与 RedView 相同的大小和相同的选项。我也在创建 BlueViewControler类,并将其设置为 BlueView.xib 中的所有者。 BlueViewControler 为空。

RedView 将 BlueView 包含为这样的 child :

@implementation RedViewController
{
BlueViewController *_blueViewController;
}

- (void)viewDidLoad {
[super viewDidLoad];
_blueViewController = [[BlueViewController alloc] initWithNibName:@"BlueView" bundle:nil];
[self.view addSubview:_blueViewController.view];
}

@end

现在,当我在 iPhone 5 Simulator 上启动应用程序时,RedView 变为 320 * 568,Blue view 变为 600 * 600。
2015-08-28 13:32:17.937 TestViewSize[3087:77218] RedView frame = {{0, 0}, {320, 568}}
2015-08-28 13:32:17.938 TestViewSize[3087:77218] BlueView frame = {{0, 0}, {600, 600}}

在屏幕上,它们看起来也不同。
所以我的问题是:
  • 为什么在 Storyboard中创建的 RedView 会自动调整大小?我可以理解,为什么蓝色 View 是 600*600,但为什么红色调整到屏幕尺寸?谁告诉它这样做?
  • 在 XIB 和 Storyboard 中创建 View 有什么区别 与调整 View 大小有关,而不是其他任何事情。 为什么 Storyboard 调整其 View 大小,而 .XIB 没有?

  • 我的项目在 Xcode 6 中创建,目标是 8.0,使用 AutolayoutSize Classes已启用。

    最佳答案

    这么老的问题,但仍然有人可能不太了解这种行为,就像我第一次面对它时一样。
    UIViewController在 Storyboard 中有选项 "Resize View From NIB" , 而 UIView在xib中没有。默认情况下,此选项处于打开状态,这会使 View Controller 的 View 在加载时调整为屏幕大小,甚至在 View 被添加到 View 层次结构之前。

    关于ios - UIVIew 在 Storyboard 和 NIB 差异中调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32267022/

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