ऑटोलाउट समस्या को डीबग करने का प्रयास करते समय (एक तालिका कक्ष जो इसकी सामग्री के आकार के अनुसार बढ़ाना चाहिए, कुछ परिस्थितियों में नहीं है), मैं सेट करता हूं"यह NSLayoutConstraint को स्थिर सीमा से अधिक कॉन्फ़िगर किया जा रहा है जो आंतरिक सीमा से अधिक है"
(lldb) p ((CGSize)[cachedCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]).height
2014-10-14 11:15:49.492 AppName[72132:10302054] This NSLayoutConstraint is being configured with a constant that exceeds internal limits. A smaller value will be substituted, but this problem should be fixed. Break on void _NSLayoutConstraintNumberExceedsLimit() to debug. This will be logged only once. This may break in the future.
(CGFloat) $0 = 57
खैर ठीक है, कि दिलचस्प है: मेरे tableView:heightForRow:
विधि की अंतिम पंक्ति पर एक ब्रेकपाइंट, और systemLayoutSizeFittingSize:
का मूल्य मैं इस मिल मुद्रित करने के लिए कोशिश कर रहा। लेकिन मैं कोशिश करते हैं और है कि समारोह पर यह क्या कहते हैं और एक ब्रेकपाइंट सेट:
... और इस ब्रेकपाइंट हिट नहीं होती है।
- क्या मैं ब्रेकपॉइंट सही ढंग से सेट कर रहा हूं?
- किसी भी मामले में, इस पर जाने के लिए मेरी बाधाओं के साथ क्या गलत हो सकता है पर कोई संकेत?
प्रतीक नाम से (Annoyingly, यह कुछ मामलों में, लेकिन दूसरों में नहीं काम करने के लिए लगता है और मैं सेटअप में एक फर्क नहीं देख सकता।)
ठीक है, अब मुझे 'br l' (धन्यवाद!) के अनुसार ब्रेकपॉइंट सेट मिला है, लेकिन यह तब तक हिट नहीं होता है जब तक कि मैं 'पी (CGSize) को कॉल नहीं करता [cachedCell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize]' डीबगर में, किस मामले में मैं हिट गिनती देख सकता हूं! –
अंत में समस्या हल हो गई। यदि मुझे मैन्युअल रूप से लेबल पर 'पसंदीदा मैक्सलेआउट विड्थ' सेट करना है, तो ऑटो लेआउट मेरे लिए क्या कर रहा है ?! –
@RobertAtkins, आपने इसे कैसे ठीक किया? – orkenstein