【问题标题】:What does "autoresize = W+H;" mean in NSLog output of a UIView object“autoresize = W+H;”是什么意思? UIView 对象的 NSLog 输出中的意思
【发布时间】:2013-12-04 14:19:37
【问题描述】:

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

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

我尝试[[self view] setFrame:CGRectMake(0, 64, 320, 568 + 64)];,但视图的框架仍然是 frame = (0 44; 320 588)。所以我 NSLog [self view] 看看那里是否有一些自动调整大小的限制。但是不知道上面的符号是什么意思。

【问题讨论】:

  • 对于@RobertLevy,这是否意味着 (1) [self view] 中添加了一些自动调整大小约束,或者 (2) [self view] 的超级视图中添加了一些自动调整大小约束。 W 和 H 意味着什么样的自动调整大小约束?灵活的宽度和灵活的高度?

标签: ios nslog autoresize


【解决方案1】:

这是 UIView -autoresizingMask 的日志描述。基本上,这是您描述在调整超级视图大小时子视图应该做什么的方式。它非常强大。

您当前的规则告诉子视图在调整父视图大小时调整宽度和高度,并保持子视图上方和下方的距离不变(根据父视图坐标系)。

【讨论】:

  • 嗨@amanhuipg 这个 W+H 使视图在导航栏下方移动 20 点。即使我仅将其设置为 W 也会发生这种异常行为(即在包含 [self view] 的视图控制器的 -(void)init 方法中设置 [[self view] setAutoresizingMask:UIViewAutoresizingFlexibleWidth];)。
【解决方案2】:

你可以这样理解:

此视图将通过拉伸其宽度和高度来自动调整大小。

【讨论】:

    【解决方案3】:

    这意味着您当前的自动调整大小掩码设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

    【讨论】:

    • 是的,我也这么认为:D
    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2010-11-19
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多