为什么我的自动布局限制会发生冲突?

时间:2017-06-02 11:43:22

标签: ios xcode autolayout ios-autolayout

我有一个使用滚动视图的应用程序在该滚动视图中有许多图标的页面上。我不太了解自动布局,但我已将每个图标限制为其当前画布值到视图(在测量并将每个图标放在正确的位置后)。为什么还存在冲突(准确地说是188)和明确的立场?

作为我在上面不清楚的情况下所做的一个例子,我在滚动视图的左上角放了一个图标。然后,我从视图中限制了当前画布值的顶部,底部,左侧和右侧的图标。

2 个答案:

答案 0 :(得分:0)

如果没有显示(例如"现场演示"),这非常难以解释,但我会尝试一下: Scrollviews的Autolayout工作方式与您想象的不同。您不能简单地指定将其内容放置在与其边界相关的位置。毕竟,"画布"滚动视图的大小从您滚动的内容确定其大小,而实际滚动视图的大小(让我们称之为视口,或者#34;窗口到画布上#34;)以不同的方式确定(对于例如,将它约束到它周围的元素)。

这与autolayout对其他视图的工作原理相反,因为它们通常受其父级大小的限制(直到视图控制器的顶视图和/或屏幕边界)。

您要做的是在一个视图中添加所有项目。从已知的最小尺寸,将它们约束到彼此。最后,他们的容器具有由其内容产生的尺寸,即您的物品。这就是"画布"的大小。滚动视图,所以添加它并以某种方式约束其位置(例如水平和垂直居中)。现在,滚动视图的实际大小和位置应该受到它周围元素的约束。

可能需要一些思考和培训,所以也许你会想要在一个只有有限数量的观点的小型培训项目中进行测试。

答案 1 :(得分:0)

  1. 在屏幕上添加带有父视图约束的滚动视图
  2. 在滚动视图中添加内容
  3. 在添加的视图和父视图之间设置约束(不滚动视图)