我在使用自动调整来处理一行标签的布局时遇到了问题。
见下图。
我想要第一个标签占据整个宽度。 名为“Lat:”的标签将是与左侧对齐的窄恒定宽度。
名为“Lon:”的标签将是在中心水平对齐的窄恒定宽度。
标签“55.000”和“-95.000”将具有可变宽度,基本上填充显示边缘和其他标签之间的空间(“Lat:”和“Lon:”)。
我以为我正确使用了自动调整大小限制,但是当显示倾斜到横向时,自动调整大小会出现意外结果标签相互重叠。
非常感谢任何帮助。
在Xcode 9.2中使用通用iOS应用程序
答案 0 :(得分:0)
我认为使用自动调整功能是不可能的,因为在定位时只有两个选项,要么将视图固定在固定位置,要么按比例移动到大小。无法将其固定到中心位置,因此当尺寸更改时,第三个视图将无法正确定位。此外,具有灵活宽度的两个视图将与父视图的宽度成比例,而您确实希望它们将相同的量调整为父宽度/ 2,因此您无法使它们完美地调整大小
要解决此问题,您需要使用带约束的自动布局或按layoutSubviews()
中的代码进行布局。其中任何一个实际上都很容易解决您的问题。
更新:
我通过动态更改视图大小来测试它。这就是它的样子。第一张图片是开始条件,视图宽度为300
。第二张图片是宽度更改为600
时的图像。底部的值首先是视图宽度,然后是四个“段”中的每一个x位置和宽度。