[英]Autoresizing Not Working Programmatically
我想创建一个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];
}
自动布局关闭。
如果我通过从界面生成器应用自动调整大小来做同样的事情,那么它工作得很好。
我不明白为什么它不起作用。
从
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并开始工作。 ...
无论如何,感谢您回答我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.