2013-11-04 3 views
2

그래서 적절한 레이아웃을 얻기 위해 셀 내용보기에 autolayout을 사용하려고합니다. 그래서 내 문제는 그 텍스트에 관해서 그 크기가 변하는 UILabel이고 둥근 모서리를 가진이 라벨에 대한 배경 뷰는 UIView입니다. 그래서 내 질문은,이 UIView's 너비를 10 포인트가 UILabel보다 넓게하는 방법입니다. 나는 그것을 같은 너비로 만들었지 만 어떻게하면 항상 더 길게 늘릴 수 있을까?UILabel Autolayout 너비 문제

미리 감사드립니다.

+0

에서보세요. – Venkat

+0

그러나 UILabel 너비는 100px보다 큰 Width> 제약 조건을 사용하여 동적으로 변경됩니다. 그러면 너비에 10 포인트를 어떻게 추가 할 수 있습니까? – Noobass

+1

프로그래밍 방식으로 추가 할 수 있습니다 – Venkat

답변

4
NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:yourLabel 
                    attribute:NSLayoutAttributeWidth 
                    relatedBy:NSLayoutRelationEqual 
                     toItem:yourLabel.superview 
                    attribute:NSLayoutAttributeWidth 
                    multiplier:1.0 
                    constant:10]; // <-- this 
[yourLabel.superview addConstraint:widthConstraint]; 
+0

내 문제를 완벽하게 해결했습니다! – Noobass

0

자동 레이아웃 제약의 형식은 프로그래밍 방식으로, 당신은 실제로 당신의 견해에 어떤 ​​제약 조건을 설정할 수 있습니다

attribute1 == multiplier × attribute2 + constant 

주의 방정식에 불과하다. 그러나 인터페이스 작성자는 constant을 제공하지 못할 수도 있다는 것을 알고 계시므로 특정 쌍의 (attribute1,attribute2) 만 연결할 수 있다는 점을 감안하여 조금 제한적입니다.

그냥 UILabel의의 폭이 10 포인트를 추가 https://developer.apple.com/library/ios/DOCUMENTATION/AppKit/Reference/NSLayoutConstraint_Class/NSLayoutConstraint/NSLayoutConstraint.html

+0

기본적으로 당신 말이 맞지만 레이아웃 제약 조건은 relationEqual에 국한되지 않으며 두 번째 속성을 모두 상수로 묶으려면 건너 뛸 수 있습니다. –