在Xcode中自动调整标签行会产生意外结果

时间:2018-03-24 21:39:37

标签: ios xcode labels autoresize

我在使用自动调整来处理一行标签的布局时遇到了问题。

见下图。

enter image description here

我想要第一个标签占据整个宽度。 名为“Lat:”的标签将是与左侧对齐的窄恒定宽度。

名为“Lon:”的标签将是在中心水平对齐的窄恒定宽度。

标签“55.000”和“-95.000”将具有可变宽度,基本上填充显示边缘和其他标签之间的空间(“Lat:”和“Lon:”)。

我以为我正确使用了自动调整大小限制,但是当显示倾斜到横向时,自动调整大小会出现意外结果标签相互重叠。

非常感谢任何帮助。

在Xcode 9.2中使用通用iOS应用程序

1 个答案:

答案 0 :(得分:0)

我认为使用自动调整功能是不可能的,因为在定位时只有两个选项,要么将视图固定在固定位置,要么按比例移动到大小。无法将其固定到中心位置,因此当尺寸更改时,第三个视图将无法正确定位。此外,具有灵活宽度的两个视图将与父视图的宽度成比例,而您确实希望它们将相同的量调整为父宽度/ 2,因此您无法使它们完美地调整大小

要解决此问题,您需要使用带约束的自动布局或按layoutSubviews()中的代码进行布局。其中任何一个实际上都很容易解决您的问题。

更新: 我通过动态更改视图大小来测试它。这就是它的样子。第一张图片是开始条件,视图宽度为300。第二张图片是宽度更改为600时的图像。底部的值首先是视图宽度,然后是四个“段”中的每一个x位置和宽度。

enter image description here

enter image description here