不自动调整大小以编程工作(Autoresizing Not Working Programmatic

2019-10-22 03:36发布

我想创建一个UIView ,这将调整其大小根据iPhone屏幕大小的宽度和应该维持在视图底部。

我创建了新的项目,分镜,并添加以下代码。

这里是我的代码

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:true];

    UIView *box = [[UIView alloc]initWithFrame:CGRectMake(0, 448, 320, 120)];
    [box setBackgroundColor:[UIColor redColor]];

    [box setAutoresizingMask:UIViewAutoresizingFlexibleHeight];
    [box setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
    [box setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
    [box setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin];
    [box setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin];

    [self.view addSubview:box];
}

自动布局OFF。

如果我从界面生成器做同样的事情,通过应用自动尺寸那么它的正常使用。

我不明白任何理由为什么它不工作。

Answer 1:

http://stackoverflow.com/q/7754851/4030971 

只有设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)等同于:

设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)的代码等同于:

我认为 -

您需要设置只灵活宽度和灵活的底部从而及其影响相反。 不使用灵活的高度。 如果你需要使用灵活的高度,然后而不是分配灵活的宽度灵活的顶部分配灵活宽度,灵活高度灵活的底部。 所以它会删除顶一个。 见分配左右顶部底部除去,如果柔性的宽度和高度灵活分配相对应的。 现在你应该根据做的。 我认为这将有助于。



Answer 2:

你覆盖所有的调整口罩。

你可以像下面这样做:

[box setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];


Answer 3:

这是一个面具,试图做到这一点:

[box setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth |
 UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];
  • 同样,如果你想要的高度不会改变,删除UIViewAutoresizingFlexibleHeight

编辑

要设置它的任何设备尺寸做这样的事情:

CGRect fr = box.frame;
fr.size.width = self.view.frame.size.width;
fr.origin.y = self.view.frame.size.height - 120;
box.frame = fr;


Answer 4:

从我身边的小错误。 我的代码是正确的。

该问题涉及到的Xcode 6.1,在启动画面,我们有在Xcode 6 XIB文件,所以我必须从一般设置 - >应用程序图标删除它的参考和启动图像,并使用替代launchscreen.xib断言目录,并开始工作。 ...

反正感谢答复我的问题。



文章来源: Autoresizing Not Working Programmatically