【发布时间】:2019-09-28 15:39:28
【问题描述】:
具有正确自动布局的 UIView 未返回正确的内在内容大小。我得到 (-1.0, -1.0) 即使我可以看到它在故事板和应用程序运行时的大小都是正确的。
我尝试创建一个创建 UIView (a) 和 UILabel 的 Playground。 我将我的标签添加为 (a) 的子视图并设置左、右、上、下约束。 我还设置了一些文本并验证了我的标签具有正确的内在大小(确实如此)。 我的 (a) 视图返回 (-1.0, -1.0) 的内在内容大小。
我还尝试使用情节提要创建一个新项目。 我在视图中添加了一个 UIView (a) 并将其居中(X 和 Y)。 我在我的 (a) 视图中添加了一个 UILabel 并限制了左、右、上、下。 我可以看到(a)视图大小正确。当我运行应用程序时,我发现它的大小仍然合适。 我的 (a) 视图返回 (-1.0, -1.0) 的内在内容大小。
考虑到 UIView 根据其固有内容大小(即子视图和相关约束)进行布局,我觉得这非常奇怪。
假设我的 (a) 视图边缘的标签约束都是 0 的距离,那么我希望我的 (a) 视图具有等于标签框架的内在内容大小(基于标签的固有大小,但这有点没有实际意义)。
我真的不明白视图如何将其框架设置为与其子元素的固有大小相等,而没有固有的内容大小。
((a)视图的框架返回正确的大小,但这并不能真正回答我的问题。另外 - 这对我的特定情况没有帮助,但这超出了这个问题的范围。)
【问题讨论】:
标签: ios swift uiview autolayout