2016-03-08 101 views
2

你好现在我正在学习Autolayout。我提前提出一个简单的问题,表示歉意。Autolayout uilabel autosize tableView cell

enter image description here

我想知道我怎么可以让rightLabel这是拉合尔,PK收缩或自动调整大小,并保持国家标签(左侧),以它的位置。我已经使用了一些约束条件,但它将国家标签移出屏幕。这就是我在单元格中所做的事情,也请告诉我,如果我做得对,或者如果不行请告诉我什么是更好的方法。

国家

  1. 我首先countryLabel设置为Center Vertically To TableViewCell
  2. 我已经左限制设置为14分
  3. 我已经锁定高度到22点

LAHORE,PK

  1. 我已经锁定了高度
  2. 设置countryLabel到Center Vertically To TableViewCell
  3. 我设置拉合尔,PK和国家之间的水平间距
  4. 设置权制约0

我是问题如果在标签的右侧出现较大的文本,则在左侧的国家/地区标签移出屏幕

回答

0

可疑约束到我是:

LAHORE,PK

  • 我设置拉合尔,PK和国家之间的水平间距
  • 删除它。增加这一个:

    拉合尔,Pk和superview的尾部空间。控制并从拉合尔,Pk标签拖到内容视图的单元格,并选择trailing space to container margin to zero.

    在拉合尔,PK和国家之间设置水平空间将您的标签推到视图的右侧。

    试试吧,让我知道它还有一个问题。

    希望这可以帮助。

    +0

    非常感谢 – user1hjgjhgjhggjhg

    0

    最简单的方法这样做是为了将两者放在水平堆栈视图中,然后给左边的标签(不应该调整大小的那个)更高的拥抱优先权和抗压性。

    当然你也可以使用旧学校自动布局仍然重要的因素是拥抱优先和压缩阻力。

    +0

    StackView在iOS 9.0及更高版本中可用。 –

    0

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

    您目前设置的约束有两个问题,一个是,您在国家两个标签之间设置了Horizo​​ntalSpacing,它必须有一些固定的常量点,所以当您运行应用程序时会发生什么情况Auto layout is breaking the LeadingSpace限制First(左)标签并将其移到屏幕外。那么,怎样才能防止这种情况发生,

    1. 如果你有两个标签,水平对齐,它们之间则不能设置固定点水平间距,设置标准间距,而不是下面,

    enter image description here

    1. 现在您会看到约束中的歧义,如果两个标签都具有无法在屏幕上显示的大文本,哪个标签应该优先显示文本,所以要解决这个变化水平内容拥抱优先y从251到252之间的一个标签,并更新该帧。

    enter image description here

    enter image description here

    enter image description here

    所以最终约束:

    国家标签:

    enter image description here

    Lahore.PK

    enter image description here

    希望这会帮助你。