我正在深入研究自动布局,并试图了解如何水平居中多个视图,包括具有内在大小的视图(如UILabel或UIButton)。
例如,我有一个固定宽度为 320 的自定义视图。在其中,我有两个子视图,一个用户界面标签和一个用户界面图像视图。我希望 UI图像视图位于 UI标签右侧的 15 个像素,并且我希望 UI标签和 UI图像视图一起在超级视图中水平居中,但我不确定处理此问题的最佳方法。
我应该把它们放到容器视图中,并在超级视图中水平居中放置吗?如果是的话,如果UILabel有一个固有的大小,我如何确定容器视图的宽度?
或者,我是否应该计算 UILabel 的宽度,并使用该值发送两个视图的前缘/后缘,以便它们在超级视图中水平居中,而不是将它们放在容器视图中?
提前感谢您的智慧!
使用容器视图是最简单的解决方案。如果在容器视图及其标签和图像子视图之间创建约束,并且未在容器或标签上创建任何显式宽度约束,则标签将调整自身大小以适合其内容,并且容器将调整自身大小以适合其子视图。然后,可以在容器和顶级视图之间创建水平中心约束。