我有:
我在界面构建器中有警告“具有不明确的可滚动内容宽度”。
我知道解决这个问题的唯一方法是设置尾随和前导约束。 但对于不同的iPhone(5.5“,4.7”,4“),我需要设置不同的尾随和前导约束。
如何消除此警告,并且对于所有iPhone尺寸,仍然使用固定的W和H居中水平视图?
我创建了Github repo来说明这个问题:ScrollViewAmbigous
这与UIScrollView Scrollable Content Size Ambiguity不重复 ,但它相似(虽然没有回答),但这个问题尤其与不同尺寸的iPhone有关。
答案 0 :(得分:46)
早上喝了一杯新鲜的咖啡,我找到了解决这个问题的方法!
Has ambiguous scrollable content width
和Has ambiguous scrollable content height
恼人的警告。
重要提示:您必须添加尾随和/或底部约束。不是“领先和顶级” - 它不起作用!
您可以在我的示例项目中查看它,演示如何解决此问题:ScrollViewAmbigous
<强> P.S。强>
我不知道它为什么会起作用以及Xcode如何检测哪个约束更优先(因为我没有为这些约束明确设置优先级),但如果有人解释,为什么它在下面的评论中起作用,我会感激不尽
答案 1 :(得分:8)
问题:
解决方案:
为内容视图&#39;添加严格(固定)约束。
最佳做法:滚动视图的宽度和高度相等。
答案 2 :(得分:0)
在这个问题上似乎存在很多混乱。我的看法是UIScrollView必须具有两个尾随空间约束,一个“内部”约束将其连接到其中一个子视图(因此它可以知道其内容宽度),另一个“外部”连接它到兄弟或超级视图,所以它知道它的框架宽度。
同样的原则适用于高度,即两个底部空间约束。