Ios 自动布局以生成viewController';旋转时,如何查看填充屏幕?
我已将以下内容添加到我的viewDidLoad中:Ios 自动布局以生成viewController';旋转时,如何查看填充屏幕?,ios,autolayout,Ios,Autolayout,我已将以下内容添加到我的viewDidLoad中: - (void)viewDidLoad { [super viewDidLoad]; [self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; NSDictionary *views = @{ @"view" : self.view }; [self.view addConstraints:[NSLayoutConstraint
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
NSDictionary *views = @{ @"view" : self.view };
[self.view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"|[view]|"
options:kNilOptions
metrics:nil
views:views]];
}
我不工作。我有一个视图控制器,当我旋转设备时,视图会适应新的方向。所以,如果我从纵向到横向,我希望视野足够宽,并降低其高度。。。所以在自动布局之前,我通常能够快速完成正常的行为
我怎样才能做到这一点?我做错了什么
感谢无论方向如何,视图控制器的视图(您在这里所处理的内容)都会自动填充整个屏幕。您没有(也不应该)在此视图上设置自动布局约束。相反,您需要在子视图上设置自动布局约束。即使使用自动布局,也不需要这样做。如果你注释掉这段代码,你会看到什么结果?由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析约束格式:无法解释“|”字符,因为相关视图没有superview |[视图]| ^”,当你注释掉代码时会出现该错误,或者当你有代码时(你应该注释掉整个viewDidLoad方法)?好的,我想我需要这样做,因为在旋转之后视图控制器的视图总是有相同的帧:didRotateFromInterfaceOrientation。帧={0,0},{320568}。那么,它应该是这样的吗?当我有代码的时候,我就得到了那个错误。如果我在viewDidLoad中注释掉代码,我不会出错。那么,你能告诉我为什么帧总是保持纵向吗?当调用didRotateFromInterfaceOrientation且手机现在处于横向时,视图控制器的self.view仍然是:frame={{0,0},{320568}。为什么?好吧,我在这里找到了一个答案,说明边界确实会改变,我也是这样。谢谢