ios - NSLayoutConstraint break within UITableViewCell -


जब एक viewController.view को एक तालिका व्यू सेल में प्रोग्रामेटिक रूप से ऑटोलायआउट बाधाओं के साथ जोड़ते हैं तो कभी-कभी इसे नहीं लगाया जाता है सही ढंग से बाहर यह जानने के लिए कि कोशिकाओं की ऊंचाई तय हो गई है (50) और उप दृश्य में एक UIButton और UITableView होता है, जो उपयोगकर्ता को कुछ कार्य करने तक शुरू होने पर कोशिकाओं को शामिल नहीं करता है। यहाँ कोड है जो सेल को उप दृश्य जोड़ता है:

  - (UITableViewCell *) तालिकादृश्य: (UITableView *) तालिका दृश्य सेलफोररावएटइंडएपपाथ: (NSIndexPath *) indexPath {UITableViewCell * सेल = [टेबलदृश्य डेक्यूवर पुन: उपयोग योग्य सेल विथ पहचानकर्ता: @ "सेल"]; // उप आइटम ऑब्जेक्ट्स प्राप्त करें BookItem * newItem = self.subItems [indexPath.row]; NSString * newItemKey = [NSString stringWithFormat: @ "% i", newItem.iD]; NSString * currentCellItemKey = [NSString stringWithFormat: @ "% i", सेलटैग]; BookTreeItemViewController_iPad * bookTreeItemVC = self.subItemVCs [currentCellItemKey]; If (! BookTreeItemVC) {bookTreeItemVC = [self.storyboard instantiateViewControllerWithIdentifier: @ "BookTreeItemViewController_iPad"]; // के लिए साफ सेल (UIView * subView in cell.contentView.subviews) [subView removeFromSuperview]; // सेल के लिए उप आइटम दृश्य जोड़ें [पुस्तकट्रीआईटैमसीसी। दृश्य सेटट्रांसल्सअटोरिसिज़िंगमास्क इनटोनिस्ट्रक्शन: नहीं]; [Cell.contentView addSubview: bookTreeItemVC.view]; [सेल कंटेंटव्यूज जोड़ने के लिए जोड़ें: [एनएसएलयूट कंटेंट प्रतिबंध प्रतिबंधों के साथ विज़ुअलफ़ॉर्मेट: @ "एच: | [मद] |" विकल्प: शून्य मीट्रिक: शून्य दृश्य: @ {@ "आइटम": bookTreeItemVC.view}]]; [सेल कंटेंटव्यूज जोड़ने के लिए: [एनएसएलयूट कॉन्ट्रैन्टेंट बाधाओं के साथ विज़ुअलफ़ॉर्मेट: @ "वी: | [मद] |" विकल्प: शून्य मीट्रिक: शून्य दृश्य: @ {@ "आइटम": bookTreeItemVC.view}]]; } BookTreeItemVC.bookItem = newItem; // नए पुस्तक के साथ पुराने पुस्तक पेड़ आइटम दृश्य नियंत्रक को बदलें [self.subItemVCs setValue: शून्य के लिए: वर्तमानकेलआईटीमेके]; Cell.tag = newItem.iD; Self.subItemVCs [newItemKey] = bookTreeItemVC; रिटर्न सेल; }  

यहां बाधाओं की चेतावनी है:

  एक साथ बाधाओं को पूरा करने में असमर्थ संभवत: निम्न सूची में कम से कम एक बाधाएं एक हैं जो आप नहीं चाहते हैं। यह प्रयास करें: (1) प्रत्येक बाधा को देखो और यह पता लगाने की कोशिश करें कि आप जो उम्मीद नहीं करते हैं; (2) वह कोड प्राप्त करें जो अवांछित बाधा या बाधाओं को जोड़ता है और इसे ठीक कर सकता है। (नोट: यदि आप NSAutoresizingMaskLayoutConstraints को देख रहे हैं, तो आप UIView प्रॉपर्टी के अनुवाद के लिए प्रलेखन का संदर्भ लेंअनुरूपणमास्कइनट कॉन्स्टर्नेन्ट्स ("& lt; NSLayoutConstraint: 0x7c091240 'UIView-Encapsulated-Layout-Height' V: [UITableViewCellContentView: 0x7c0895d0 (49.5) )] & Gt; "," & lt; NSLayoutConstraint: 0x7a74f250 वी: [UIButton: 0x7a7482a0'Title '] - (8) - [UITableView: 0x7aad7a00] & gt; "," & lt; NSLayoutConstraint: 0x7a74f2b0 वी: [_ UILayoutGuide: 0x7a74ee70] - (0) - [UIButton: 0x7a7482a0'Title '] & gt; "," & lt; NSLayoutConstraint: 0x7a74f310 वी: [UITableView: 0x7aad7a00] - (0) - [_ UILayoutGuide: 0x7a74ef60] & gt; "," & lt; _UILayoutSupportConstraint: 0x7a739510 वी : [_ UILayoutGuide: 0x7a74ee70 (87)] & gt; "," & lt; _UILayoutSupportConstraint: 0x7a74e2e0 वी: | - (0) - [_UILayoutGuide: 0x7a74ee70] (नाम: '|': UIView: 0x7a74ee00) & gt; "," & lt; _UILayoutSupportConstraint: 0x7a747900 V: [_ UILayoutGuide: 0x7a74ef60 (0)] & gt; "," & lt; _UILayoutSupportConstraint: 0x7a748130 _UILayoutGuide: 0x7a74ef60.b Ottom == UIView: 0x7a74ee00.bottom & gt; "," & lt; NSLayoutConstraint: 0x7a750c10 V: | - (0) - [UIView: 0x7a74ee00] (नाम: '|': UITableViewCellContentView: 0x7c0895d0) & gt; "," & lt; NSLayoutConstraint: 0x7a748270 वी: [UIView: 0x7a74ee00] - (0) - | (नाम: '|': UITableViewCellContentView: 0x7c0895d0) & gt; ") बाधा को तोड़ने की कोशिश करेगा & lt; NSLayoutConstraint: 0x7a74f250 वी: [UIButton: 0x7a7482a0'Title '] - (8) - [UITableView: 0x7aad7a00] & gt; UIViewAlertForUnsatisfiableConstraints पर एक प्रतीकात्मक ब्रेकप्वाइंट डीबगर में इस पकड़ने के लिए UIView पर UIConstraintBasedLayoutDebugging श्रेणी में सूचीबद्ध में तरीकों। & lt; UIKit / UIView.h & gt;। भी सहायक हो सकता है  

वैसे, मैंने चेतावनी से देखा है कि शीर्ष लेआउट गाइड की ऊंचाई (87) है जो कि (0)

हाँ, तुम ठीक कह रहे

 ।" & LT; _UILayoutSupportConstraint: 0x7a739510 वी: [_ UILayoutGuide: 0x7a74ee70 (87)] & gt; ",  
< P> किसी भी तरह, आपके दृश्य नियंत्रक के शीर्ष सहायक मूल्य 87 के साथ लेआउट मार्गदर्शिका है। अपनी निश्चित सेल ऊँचाई के साथ यह दुर्घटना है, इसलिए वह बटन और टेबल व्यू के बीच की दूरी को दूर कर रही है।

शायद आप पोस्ट कर सकते हैं layo यूटीएटीम वीआईयूआईयूटी-नियंत्रक_आईपैड का यूट कोड या

  • यह पता लगाने के लिए कि क्या 87 पिक्सेल है?
  • अपने तालिका दृश्य को देखने के लिए। ऊंचाई गतिशील होगी फिर, फिर, आप देख सकते हैं कि 87 पिक्सेल क्या है।

Comments