Tôi đang sử dụng các ràng buộc bố cục tự động theo lập trình để bố trí các ô UITableView tùy chỉnh của mình và tôi đang xác định chính xác kích thước ô trong tableView:heightForRowAtIndexPath:
Nó chỉ làm việc tốt trên iOS6 và nó nhìn tốt trong iOS7 cũng
NHƯNG khi tôi chạy ứng dụng trên iOS7, đây là loại thông báo tôi thấy trong bảng điều khiển:
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2013-10-02 09:56:44.847 Vente-Exclusive[76306:a0b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0xac4c5f0 V:|-(15)-[UIImageView:0xac47f50] (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSLayoutConstraint:0xac43620 V:[UIImageView:0xac47f50(62)]>",
"<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>",
"<NSLayoutConstraint:0xac43680 V:[UIView:0xac4d0f0(1)]>",
"<NSLayoutConstraint:0xac436b0 V:[UIView:0xac4d0f0]-(0)-| (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>
Và thực sự có một trong những hạn chế trong danh sách đó mà tôi không muốn:
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
và tôi không thể đặt thuộc translatesAutoresizingMaskIntoConstraints
tính của là contentView
NO => nó sẽ làm rối toàn bộ ô.
44 là chiều cao ô mặc định nhưng tôi đã xác định độ cao tùy chỉnh của mình trong ủy nhiệm chế độ xem bảng, vậy tại sao ô contentView lại có ràng buộc này? Điều gì có thể gây ra điều này?
Trong iOS6, điều đó không xảy ra và mọi thứ đều ổn trên cả iOS6 và iOS7.
Code của mình khá lớn nên mình sẽ không đăng ở đây nhưng bạn cứ thoải mái xin pastebin nếu cần.
Để chỉ định cách tôi đang thực hiện, trên nhập số hóa ô:
- Tôi tạo tất cả các nhãn, nút, v.v.
- Tôi đặt
translatesAutoresizingMaskIntoConstraints
tài sản của họ thành KHÔNG - Tôi thêm chúng dưới dạng các lần xem phụ
contentView
của ô - Tôi thêm các ràng buộc vào
contentView
Tôi cũng rất muốn hiểu lý do tại sao điều này chỉ xảy ra trên iOS7.