我想创建一个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。
如果我从界面生成器做同样的事情,通过应用自动尺寸那么它的正常使用。
我不明白任何理由为什么它不工作。
从
http://stackoverflow.com/q/7754851/4030971
只有设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)等同于:
设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)的代码等同于:
我认为 -
您需要设置只灵活宽度和灵活的底部从而及其影响相反。 不使用灵活的高度。 如果你需要使用灵活的高度,然后而不是分配灵活的宽度灵活的顶部分配灵活宽度,灵活高度灵活的底部。 所以它会删除顶一个。 见分配左右顶部底部除去,如果柔性的宽度和高度灵活分配相对应的。 现在你应该根据做的。 我认为这将有助于。
你覆盖所有的调整口罩。
你可以像下面这样做:
[box setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];
这是一个面具,试图做到这一点:
[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;
从我身边的小错误。 我的代码是正确的。
该问题涉及到的Xcode 6.1,在启动画面,我们有在Xcode 6 XIB文件,所以我必须从一般设置 - >应用程序图标删除它的参考和启动图像,并使用替代launchscreen.xib断言目录,并开始工作。 ...
反正感谢答复我的问题。