2014-01-08 55 views
0

是否可以使用自動佈局和界面生成器進行單向尺寸匹配?Autolayout - 匹配高度,不是高度(單向)

例如,我可能有兩個標籤。我不希望標籤A比標籤B大,我希望B具有其固有的尺寸。但是使用「匹配高度/寬度」可能會導致大量文本增加A的大小,因此會增加B的大小。

+0

我編輯了我編輯的問題的答案。 – Fogmeister

回答

1

做到這一點的方法是有兩個約束。

  1. 標籤和圖像視圖之間的等高限制。
  2. 圖像視圖上的高度限制。

這將首先設置圖像視圖的高度與固定的高度約束,然後將設置標籤的高度從圖像視圖的高度(等高)。

通過這樣做,標籤不會隨着文本數量的增加而增長。它的高度由圖像視圖有效固定。

它不會使圖像視圖變得更大,因爲這會與固定高度相抵觸。

FOR新問題

OK編輯,這個你會做幾乎同樣的事情。雖然在界面生成器中可能有點棘手,但我不確定當通過IB完成時約束中的item1item2

您可以通過添加一行代碼做到這一點很容易,但...

[theSuperview addConstraint:[NSLayoutConstraint constraintWithItem:labelA 
                 attribute:NSLayoutAttributeHeight 
                 relatedBy:NSLayoutRelationEqual 
                  toItem:labelB 
                 attribute:NSLayoutAttributeHeight 
                 multiplier:1.0 
                  constant:0.0]]; 

這正是Interface Builder的約束做,但我不知道你是否可以告訴繞的方式item1和item2是。

雖然這是您的「單向」等高度屬性。

EDIT 2

有可能會或可能不會更新在未來一段時間內,可能讓你在Interface Builder中看到item1item2

+0

Fogmeister,謝謝,這就是我最終做的。但是你的回答讓我意識到我的問題措辭不佳。 – arsenius

+0

一個班輪足夠接近!你所描述的正是我遇到的問題。我不知道連接是以哪種方式進行的。如果我從A拖到B,我希望A取決於B的大小,但不知何故,情況並非如此。謝謝! – arsenius

+1

不用擔心。注意**編輯2 **在我的答案。不幸的是,我現在不能再說了。 – Fogmeister