關於您的評論:出現這種情況是因爲滾動視圖的大小取決於其內容(請參閱部分Pure Auto Layout Approach)。所以,標籤的大小不能取決於滾動視圖的大小。
有一個解決方法這一點 - 你可以設置標籤和主視圖之間,例如限制:
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationGreaterThanOrEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:40]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationLessThanOrEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:-40]];
採用這種方法就會有距離的至少40點左右之間(右)一側和滾動視圖的左側(右側)(因爲滾動視圖將填充主視圖)。
或者,您可以在標籤和主視圖的width
之間設置一個約束。它會是這樣的:
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationLessThanOrEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:-40]];
所以現在標籤的寬度不會比主視圖的width - 40
大。
您是否已經觀看過WWDC 2012和2013中所有與自動佈局相關的會話? –
我現在已經做了,我找到了一種方法來處理它,但代價是在標籤上設置了一個固定的寬度。這不是我想要的,但它完成了工作 – greg