ฉันใช้ข้อ จำกัด การจัดวางอัตโนมัติโดยทางโปรแกรมเพื่อจัดวางเซลล์ UITableView ที่กำหนดเองของฉันและฉันกำหนดขนาดเซลล์อย่างถูกต้องใน tableView:heightForRowAtIndexPath:
มันทำงานได้ดีบน iOS6 และมันก็ดูดีใน iOS7 เช่นกัน
แต่เมื่อฉันเรียกใช้แอปบน iOS7 นี่คือประเภทของข้อความที่ฉันเห็นในคอนโซล:
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]>
และแน่นอนมีหนึ่งข้อ จำกัด ในรายการที่ผมไม่อยากไปนี้:
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
และฉันไม่สามารถตั้งค่าtranslatesAutoresizingMaskIntoConstraints
คุณสมบัติของเป็นcontentView
NO => มันจะทำให้เซลล์ทั้งหมดสับสน
44 เป็นความสูงของเซลล์เริ่มต้น แต่ฉันกำหนดความสูงที่กำหนดเองของฉันในมุมมองตารางมอบหมายเหตุใดเซลล์ contentView จึงมีข้อ จำกัด นี้ อะไรที่ทำให้เกิดสิ่งนี้?
ใน iOS6 จะไม่เกิดขึ้นและทุกอย่างดูดีทั้งบน iOS6 และ iOS7
รหัสของฉันค่อนข้างใหญ่ดังนั้นฉันจะไม่โพสต์ที่นี่ แต่อย่าลังเลที่จะขอ pastebin ถ้าคุณต้องการ
หากต้องการระบุวิธีที่ฉันทำในการเริ่มต้นเซลล์:
- ฉันสร้างป้ายกำกับปุ่ม ฯลฯ ทั้งหมดของฉัน
- ฉันตั้งค่า
translatesAutoresizingMaskIntoConstraints
คุณสมบัติเป็น NO - ฉันเพิ่มเป็นมุมมองย่อย
contentView
ของเซลล์ - ฉันเพิ่มข้อ จำกัด ในไฟล์
contentView
ฉันยังสนใจที่จะทำความเข้าใจว่าทำไมสิ่งนี้จึงเกิดขึ้นเฉพาะบน iOS7 เท่านั้น