我有:
- 应用程序,应该在横向和纵向模式下工作。
- 在顶部查看全尺寸 ScrollView 。
- ScrollView 内的某些 View 具有固定的宽度和高度。 (添加了 H 和 W 约束)
- 设置为在容器中水平居中查看内部 ScrollView 。 (根据约束添加)
我在界面生成器中收到警告“具有不明确的可滚动内容宽度”。
据我所知,解决此问题的唯一方法是设置尾随和前导约束。 但是对于不同的 iPhone(5.5"、4.7"、4"),我需要设置不同的尾随和前导约束。
我怎样才能消除这个警告,并且对于所有 iPhone 尺寸仍然具有固定的 W 和 H 的居中水平 View ?
我创建 Github 存储库来说明这个问题:ScrollViewAmbigous
这不是 UIScrollView Scrollable Content Size Ambiguity 的副本 ,但它很相似(虽然没有回答),但这个问题尤其与不同尺寸的 iPhone 相关。
最佳答案
早上喝了一杯新鲜的咖啡,我想出了解决这个问题的方法!
因此,这是最简单情况的初始状态:
- 对所有边缘具有 0 约束的 scrollView
- 按钮水平和垂直居中,宽度和高度固定
- 当然还有
具有不明确的可滚动内容宽度
和具有不明确的可滚动内容高度
烦人的警告。
所有,我们要做的是:
- 添加 2 个额外的约束,例如“0”用于我们 View 的尾部和/或底部空间(在我的例子中 - UIButton)
重要提示:您必须添加尾随和/或底部约束。不是“领先和领先”——这是行不通的!
您可以在我的示例项目中查看它,演示如何解决此问题:ScrollViewAmbigous
附言
我不知道它为什么工作以及 Xcode 如何检测哪个约束更优先(因为我没有明确设置这些约束的优先级),但如果有人解释,我将不胜感激,为什么它在下面的评论中工作.
关于ios - UIScrollView + 居中 View + 不明确的可滚动内容大小 + 许多 iPhone 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261659/