我想创建一个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];
}
自动布局关闭。
如果我通过从界面构建器应用自动调整来做同样的事情,那么它的工作正常。
我不明白为什么它不起作用的原因。
答案 0 :(得分:2)
来自
http://stackoverflow.com/q/7754851/4030971
仅设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)相当于:
代码中的设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)相当于:
我认为 -
您需要设置灵活的宽度和灵活的底部,因此它的效果相反。不要使用灵活的高度。如果你需要使用灵活的高度,那么而不是指定灵活的宽度灵活的顶部分配灵活的宽度,灵活的高度和灵活的底部。所以它将删除顶部的一个。请参阅指定左上方顶部,删除相应的if柔性宽度和灵活高度。现在你应该做。我认为这会有所帮助。
答案 1 :(得分:0)
您正在覆盖所有调整大小的面具。
你可以这样做:
[box setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];
答案 2 :(得分:0)
这是一个面具,尝试这样做:
[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;
答案 3 :(得分:0)
我身边的小错误。 我的代码是正确的。
问题与xCode 6.1有关,在启动画面中我们有来自xCode 6的xib文件,所以我必须从General Setting->中删除它的引用。 App Icon和Launch Images并使用Assert Catalog而不是launchscreen.xib,它开始工作....
无论如何,谢谢回复我的问题。