मैं अपने कस्टम 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)]>"
और मैं NO => की translatesAutoresizingMaskIntoConstraints
संपत्ति सेट नहीं कर सकता, contentView
यह पूरे सेल को गड़बड़ कर देगा।
44 डिफ़ॉल्ट सेल ऊंचाई है, लेकिन मैंने अपने कस्टम हाइट को टेबल व्यू डेलिगेट में परिभाषित किया है कि सेल कंटेंट व्यू में यह बाधा क्यों है? इसका क्या कारण हो सकता है?
IOS6 में ऐसा नहीं हो रहा है और iOS6 और iOS7 दोनों पर ही सब कुछ ठीक है।
मेरा कोड काफी बड़ा है इसलिए मैं इसे यहां पोस्ट नहीं करूंगा, लेकिन अगर आपको इसकी आवश्यकता है, तो एक पास्टबिन के लिए पूछने के लिए स्वतंत्र महसूस करें।
यह निर्दिष्ट करने के लिए कि मैं यह कैसे कर रहा हूँ, सेल पर
- मैं अपने सभी लेबल, बटन आदि बनाता हूं
- मैंने उनकी
translatesAutoresizingMaskIntoConstraints
संपत्ति NO पर सेट की - मैं उन्हें
contentView
सेल के साक्षात्कार के रूप में जोड़ता हूं - मैं इसमें अड़चनें जोड़ता हूं
contentView
मुझे यह समझने में भी गहरी दिलचस्पी है कि यह केवल iOS7 पर ही क्यों होता है।