“autoresize = W + H;”在UIView对象的NSLog输出中是什么意思

代码: NSLog(@"[self view] = %@", [self view]);

输出: [self view] = <UIView: 0xca2bfc0; frame = (0 44; 320 588); autoresize = W+H; autoresizesSubviews = NO; layer = > [self view] = <UIView: 0xca2bfc0; frame = (0 44; 320 588); autoresize = W+H; autoresizesSubviews = NO; layer = >

我试着[[self view] setFrame:CGRectMake(0, 64, 320, 568 + 64)]; ,但是视图的帧仍然是帧=(0 44; 320 588)。 所以我NSLog [自我视图]看看是否有一些自动调整约束。 但不知道上述符号是什么意思。

这是UIView -autoresizingMask的日志描述。 基本上,它是您描述调整superview时子视图应该执行的操作的方式。 它非常强大。

当调整超视图时,当前规则会告诉子视图调整宽度和高度,并保持子视图上下的距离为静态(就超视图坐标系而言)。

您可以将其视为:

此视图将通过拉伸其宽度和高度来自动resize。

这意味着您当前的自动调整遮罩设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight