【问题标题】:IOS AutoLayout with constraint exception when switching between landscape and portraitIOS AutoLayout在横向和纵向之间切换时出现约束异常
【发布时间】:2016-03-13 08:26:33
【问题描述】:

对于 iPhone 6+ 横向和纵​​向,我有不同的尺寸等级。如果我从横向或纵向开始运行,我不会收到任何约束错误。当我从横向或纵向切换时,我得到约束错误。看来,如果我切换,我会合并纵向和横向的尺寸类约束。我只设置了 1. 常规宽度和紧凑高度 2. 任何宽度和紧凑高度 3. 紧凑高度和常规宽度 4. 常规宽度和常规高度。我是否做错了什么可能导致冲突。谢谢。

【问题讨论】:

  • 当您从纵向进入横向或反之亦然时,请先删除旧约束,然后再添加新约束。
  • 您有关于如何删除旧约束的示例代码吗?谢谢。

标签: ios autolayout


【解决方案1】:

如果您为 Any 尺寸类添加约束,那么它们将适用于所有设备上的所有方向,因此您需要确保它们与所有其他约束兼容。根据您指定的组合(您的列表中似乎有错字),您似乎可能已经过度设计,但很难确定。首先查看布局引擎删除的约束及其定义位置,然后您可以找出冲突所在,并在某些尺寸类中将其关闭,或者重新设计尺寸类,使它们都是独立的,或者使用 @ 987654323@ 的情况更加一致。

【讨论】:

  • 我打算为不同的方向展示不同的布局。如果我不切换方向,则没有错误。只有当我切换时。我应该更改哪些尺寸等级以支持不同方向的不同布局。谢谢。
  • 非常感谢您的回答。我想我只是遇到了上面stackoverflow中提到的同样的问题。我可能会考虑那里提到的内容。
  • 当设备处于纵向时,我最终删除了所有横向约束,反之亦然。谢谢。
  • 这似乎是这种情况,但我认为这是链接中的一个错误,就像我的案例 1 一样。如果我以工作方向加载然后旋转到一个不是的方向,一切正常(额外任何约束) 2. 与故事板构建器中的这些任何约束没有冲突,这表明它们实际上是要被排除的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多