【问题标题】:UIView always has ambiguous layoutUIView 总是有模棱两可的布局
【发布时间】:2015-10-18 17:56:21
【问题描述】:

我在视图中只放了一个标签,并添加了四个这样的约束。

然后我穿了这些代码:

- (void)viewWillLayoutSubviews {
    for (UIView *aView in [self.view subviews]) {
        if ([aView hasAmbiguousLayout]) {
            NSLog(@"View Frame %@", NSStringFromCGRect(aView.frame));
            NSLog(@"%@", [aView class]);
            NSLog(@"%@", [aView constraintsAffectingLayoutForAxis:1]);
            NSLog(@"%@", [aView constraintsAffectingLayoutForAxis:0]);

            [aView exerciseAmbiguityInLayout];
        }
    }
}

我以为它不会有任何模棱两可的布局,但是我看到了这些输出。

2015-07-28 17:03:05.087 MyApp[1865:25321] View Frame {{8, 76}, {42, 21}}
2015-07-28 17:03:05.088 MyApp[1865:25321] UILabel
2015-07-28 17:03:05.088 MyApp[1865:25321] (
    "<NSLayoutConstraint:0x7b445f20 V:|-(76)-[UILabel:0x7b449c70'Label']   (Names: '|':UIControl:0x7b449b00 )>",
    "<NSLayoutConstraint:0x7b449350 V:[UILabel:0x7b449c70'Label'(21)]>"
)
2015-07-28 17:03:05.088 MyApp[1865:25321] (
    "<NSLayoutConstraint:0x7b443890 H:|-(8)-[UILabel:0x7b449c70'Label']   (Names: '|':UIControl:0x7b449b00 )>",
    "<NSLayoutConstraint:0x7b448de0 H:[UILabel:0x7b449c70'Label'(42)]>"
)

我安装了 iOS7.1 和 8.4 模拟器,但这些输出只出现在 iOS8.4 中。

是我做错了什么还是只是一个错误?

谢谢 :->)

【问题讨论】:

  • 如果有不明确的布局,情节提要会告诉你
  • 这会导致任何实际问题还是仅显示这些警告?在我正在研究 XCode 6 的项目中,总是有这些模棱两可的布局警告。即使在我一一更正之后,它们仍然会在一段时间后重新出现,但对我的 UI 没有任何影响。如果它们没有引起任何重大问题,我的建议是忽略它们。
  • @Varun Naharia 我使用的是 xib,而不是故事板,并且在我编辑时它没有出现任何警告或错误。
  • @halileohalilei 没有造成布局上的实际问题,但是看到这些信息我还是觉得挺恶心的。
  • @GetToSet 是。但我相信它们是 XCode 的错误。大多数情况下,当我纠正这些警告时,歧义是由 0.5 个左右的错位引起的。真的没什么重要的。

标签: ios iphone xcode uiview ios8


【解决方案1】:

如果文档大纲窗口中有任何不明确的布局,您可以查看任何不明确的布局

更新:

您可以在视图的黄色箭头一侧看到任何缺少的约束,当您单击该箭头时,它将向您显示消息。

【讨论】:

  • 但我在大纲窗口中看不到任何警告或错误。很干净。
  • 是的,但我的看起来像这样
  • 您的图像仅显示主窗口而不是文档大纲窗口,您必须单击 UI 窗口左下角的矩形
  • 那么一切都是正确的。还有其他显示该消息的东西
  • 是的,我以为一切都很好,但是当应用程序运行时我仍然可以收到这些消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 2019-09-10
相关资源
最近更新 更多