【发布时间】:2015-04-28 19:55:35
【问题描述】:
在谷歌搜索并寻找解决方案后,我决定问一个问题。
我正在尝试设置一个 UIScrollView 并保留 AutoLayout。我整天都在研究这个问题,最后通过在其中放置一个子视图,然后在其中放置所有子视图,让 ScrollView 在 AutoLayout 中正常运行。
我将 Scroll View 中的约束在所有 4 个边上设置为 0,与 ContentView(ScrollView 的子视图)相同,然后将 ContentView 和 ScrollView 的父视图设置为相等的宽度。
然后我在 ContentView 中添加了 2 个标签,并将它们设置为水平居中,并添加了正确的约束以消除 ScrollView 的歧义。
标签垂直位于正确的位置,但在 iPhone 5s 上水平位于屏幕之外。
以下是限制条件:
这是预览中的样子:
但这是模拟器中的样子:
关于为什么会发生这种情况的任何想法?
提前致谢!
编辑 移除等宽约束后,视图终于出现了,但标签偏离了中心:
编辑 2 带有 UILabel 约束的情节提要的屏幕截图。
【问题讨论】:
-
在我看来,您的内容视图由于某种原因正在折叠为零宽度。作为提示,请尝试在您的视图中添加非白色背景颜色,以查看哪个行为不端。如果您已经将其四个边缘绑定到滚动视图,我认为您不需要将内容视图设置为与父视图具有相等的宽度 - 也许这会导致冲突。您是否收到任何情节提要约束警告?
-
嗨,阿里,感谢您的回复。我按照您的建议做了,并将 ContentView 的背景颜色更改为蓝色,果然没有蓝色。我删除了相等宽度的约束,除了标签被推到右侧(见上图)之外,一切似乎都在工作。
-
您可以在没有任何约束警告的情况下发生该约束冲突,这似乎很奇怪 - 您的故事板上是否有任何警告或错误可以向我们展示?
-
不,没有约束警告,控制台中也没有任何内容 =/.
-
可能不相关,但是 - 您有两个标签,但在预览和模拟器中只有一个可见。另一个应该在哪里?是第一下吗?我可以在标签上看到三个垂直约束——它们是如何垂直对齐的?你能告诉我们故事板视图吗?
标签: ios objective-c uiscrollview