【问题标题】:Want xib file to cover whole screen instead of covering top left ios希望 xib 文件覆盖整个屏幕而不是覆盖左上角 ios
【发布时间】:2016-08-22 01:02:30
【问题描述】:

我正在制作一个 ios 应用程序并使用 xib 文件而不是情节提要。起初,我什至不必使用自动布局,一切都适用于所有纵向的 iPhone 设备。但是,一旦我通过评估添加了启动屏幕,只有 iphone 5 具有正确的布局(因为 xib 文件大小设置为 4 英寸)。但是任何更大的屏幕尺寸,只有左上角被覆盖,如下所示:

我希望视图覆盖整个屏幕。顶部有一个视图,但我无法为其添加任何约束。在视图内部有一个应该覆盖整个屏幕的图像视图。所以我添加了 4 个约束并将 4 个边固定为 0,因此图像视图应该覆盖整个屏幕。但它仍然不起作用。我该怎么做才能覆盖整个屏幕?

【问题讨论】:

  • launch screen屏幕刚刚被iOS放大并且你没有做正确的iPhone6/6s屏幕支持;现在使用 启动屏幕 iOS 不进行上采样,您需要正确设置具有自动布局的界面以将您的布局应用于多种尺寸的屏幕 - 这就是为什么您的应用看起来位于左上角;这不是 xib 与故事板的问题,只需部署约束即可。

标签: ios objective-c autolayout xib


【解决方案1】:

你试过设置框架吗?

NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"xibFileName" owner:nil options:nil];        
[[array objectAtIndex:0] setFrame:self.view.frame]; // Trick here: set the main view frame

这在我的情况下有效:

// Create a Container
    UIView *container = [[UIView alloc] initWithFrame:self.view.frame];
    container.backgroundColor = [UIColor clearColor];

// Add .xib file on top of the screen
    NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"xibFileName" owner:nil options:nil];        
    [container addSubview:[array objectAtIndex:0]];

// Add container to main view
    [self.view addSubview:container];

关于 .xib 文件中的元素,您必须在那里设置约束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多