2012-10-28 20 views
7

Tôi đang tạo một xib sử dụng autolayout (NSLayoutConsraint). Có cách nào để sử dụng sizeToFit hoặc một cái gì đó tương tự để làm cho một UILabel phù hợp với nội dung của nó?Tự động định cỡ UILabel khi sử dụng Autolayout

Tôi đã thử đặt một ràng buộc "lớn hơn hoặc bằng x" và cố gắng đặt chiều cao dưới mức này. Tuy nhiên, nó vẫn ghi đè lên thuộc tính chiều cao. sitToFit dường như không hoạt động khi bạn có NSLayoutConstraints.

Tôi làm cách nào để có được kích thước nhãn phù hợp?

Trả lời

4

Thực hiện một IBOutlet cho chiều rộng và chiều cao của bạn hạn chế, và sử dụng sizeToFit để thay đổi thuộc tính constant của họ, và gọi needsUpdateConstraints

0

Bạn nên cố gắng hạ thấp ưu tiên chiều cao hạn chế của bạn.

1

Sử dụng một "lớn hơn hạn chế" cho chiều cao của UILabel và gọi sizeToFit trong viewDidLayoutSubviews đã làm các trick cho tôi

Tôi không cần phải gọi needsUpdateConstraints.

Bạn cũng cần đặt số dòng thành 0 để cho phép số lượng dòng không giới hạn hoặc> 1 nếu bạn muốn giới hạn.

Ngoài ra, thuộc tính preferredMaxLayoutWidth cần được đặt, được thiết lập tự động cho chiều rộng lượt xem bởi trình tạo giao diện.