Ios 自动布局uilabel在tableView单元格中自动调整大小

Ios 自动布局uilabel在tableView单元格中自动调整大小,ios,autolayout,Ios,Autolayout,你好,现在我正在学习自动布局。在问一个简单的问题之前,我先道歉 我想知道如何制作拉合尔、PK可收缩或自动调整大小的右标签,并保持国家标签(左侧)的位置。我使用了一些限制,但它会将Countrylabel移出屏幕。这就是我在牢房里所做的,也请告诉我我做的是否正确,如果不正确,请告诉我更好的方法是什么 国家 我首先将countryLabel设置为垂直居中至TableViewCell 我已将左约束设置为14点 我已将高度锁定在22点 PK拉合尔 我已经锁定了高度 将countryLabel设置为垂直

你好,现在我正在学习
自动布局
。在问一个简单的问题之前,我先道歉

我想知道如何制作拉合尔、PK可收缩或自动调整大小的右标签,并保持国家标签(左侧)的位置。我使用了一些限制,但它会将Countrylabel移出屏幕。这就是我在牢房里所做的,也请告诉我我做的是否正确,如果不正确,请告诉我更好的方法是什么

国家

  • 我首先将countryLabel设置为垂直居中至TableViewCell
  • 我已将左约束设置为14点
  • 我已将高度锁定在22点
  • PK拉合尔

  • 我已经锁定了高度
  • 将countryLabel设置为垂直居中至TableViewCell
  • 我设置了拉合尔、Pk和Country之间的水平间距
  • 将右约束设置为0

  • 我遇到的问题是,如果较大的文本出现在标签的右侧,则左侧的国家/地区标签将移出屏幕。最简单的方法是将两者都放在水平堆栈视图中,然后给左侧标签(不应调整大小的标签)更高的拥抱优先级和压缩阻力


    当然,你也可以使用老式的自动布局,但重要的因素是紧握优先权和抗压性。

    对我来说,可疑的约束是:

    PK拉合尔

  • 我设置了拉合尔、Pk和Country之间的水平间距
  • 删除它。加上这个:

    拉合尔、Pk和superview的尾随空间。控件并从Lahore、Pk label拖动到单元格的contentview,然后选择“从尾随空格到容器边距为零”。

    在拉合尔、pk和country之间设置一个水平空格,将标签推到视图的右侧

    试试看,让我知道还有一个问题


    希望这能有所帮助。

    首先,您不应该为具有固有内容大小的视图设置固定高度,标签就是其中之一

    您当前设置的约束有两个问题,一个是,您设置了两个国家/地区标签之间的水平间距,这两个标签必须有一些恒定的固定点,因此,当您运行应用程序自动布局时,将打破第一个(左)标签的LeadingSpace约束,并将其移动到屏幕外。那么你如何才能防止这种情况发生呢

  • 如果两个标签水平对齐,则不能在它们之间设置固定点水平间距,而是按如下所示设置标准间距
  • 现在您将看到约束中的模糊性,因为如果两个标签都有无法在屏幕上显示的大文本,那么哪个标签应该具有显示文本的优先级,因此要解决此问题,请将其中一个标签的水平内容优先权从251更改为252,并更新框架
  • 因此,最后的限制是:

    国家/地区标签:

    Lahore.PK


    希望这对您有所帮助。

    iOS 9.0及更高版本中提供StackView。