कस्टम UITableViewCell में Autolayout को अनदेखा किया गया है


92

सभी तत्वों के लिए अड़चनें होने के बावजूद, सेल के लिए अपनी ऊंचाई की गणना करने के लिए आवश्यक लंबवत सहित, ऑटो-लेआउट को नजरअंदाज किया जाता है: सभी कोशिकाओं को निचोड़ा जाता है।

यहाँ स्टोरीबोर्ड में परिणाम और बाधाओं का एक स्क्रीनशॉट है। यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

कुलपति में, जो तालिका दृश्य रखता है, यहां देखें कोड में कोड है :

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

दूसरी पंक्ति में टिप्पणी करने से 120.0 की ऊँचाई वाली कोशिकाएँ प्राप्त होती हैं, लेकिन ऑटोलेयूट को भी अनदेखा कर दिया जाता है।

धन्यवाद


अपडेट करें

इंटरफ़ेस को सरल बनाने के लिए, मैंने एक एकल लेबल छोड़ा है, जैसे कि बाधा:

  • पर्यवेक्षण करने के लिए अग्रणी स्थान
  • पर्यवेक्षण के लिए शीर्ष स्थान
  • निश्चित चौड़ाई और ऊंचाई (100 और 100)
  • यह सुनिश्चित करने के लिए कंटेनर मार्जिन के नीचे की जगह है कि सेल में इसकी ऊंचाई निर्धारित करने के लिए सभी ऊर्ध्वाधर बाधाएं हैं

और इस सरलीकृत इंटरफ़ेस के साथ, ऑटो-लेआउट को अभी भी ध्यान में नहीं रखा गया है, जो मुझे संकेत देता है कि समस्या बुरी तरह से निर्धारित बाधाओं से नहीं आई थी।

आकार निरीक्षक में, पंक्ति की ऊंचाई 120 पर सेट की गई है और कस्टम की जाँच की गई है। सेल में सही कस्टम क्लास है, सेल का पुनः उपयोग पहचानकर्ता सही है।


अद्यतन: समाधान मिला

यह एक साधारण गलती थी, नीचे मेरा जवाब देखें।


अपने डिबग टर्मिनल की जांच करें - क्या कोई NSLayoutConstraint लॉग इन है जिसमें सुझाव दिया गया है कि कुछ अपेक्षित नहीं है?
मैथ्यू हैलट

डीबग टर्मिनल @MatthewHallatt में कुछ भी नहीं दिखता है, धन्यवाद।
केकेआरटी

@Kqtr ने इन दो पंक्तियों पर टिप्पणी करने की कोशिश की और फिर इसे सामान्य रूप से चलाने के लिए एक बार जांच लें कि क्या कोई बदलाव है?
तुषार शर्मा

@ तुषारशर्मा ने दो पंक्तियों में टिप्पणी करते हुए एक ही प्रभाव बताया कि पंक्ति पंक्ति के बाहर केवल टिप्पणी करना: सेल की ऊंचाई 120.0 है, लेकिन ऑटो-लेआउट काम नहीं करता है।
केकेआरटी

1
क्या इंटरफ़ेस बिल्डर किसी भी बाधा को लापता या अस्पष्ट के रूप में दिखाता है? थोड़ा पीला या लाल विस्मयादिबोधक चिह्न के लिए जाँच करें।
मैथ्यू हॉलट

जवाबों:


248

ऑटो-लेआउट को नजरअंदाज कर दिया गया क्योंकि प्रोटोटाइप सेल और सेल के यूआईवीवाई को आईबी में कस्टम सेल क्लास दिया गया था।

UIView को वापस UIView वर्ग में सेट करने से समस्या हल हो गई।

बस über स्पष्ट होना चाहिए


2
मैं घंटों तक इस समस्या में फंसा रहा और यह इसे हल करता है, धन्यवाद!
कैंडिदेव

मैं लगभग पूरा दिन बर्बाद कर दिया जब तक मैं यहाँ नहीं आया .... हजार धन्यवाद।
नवसंवत्सर

-3

मुझे लगता है कि समस्या यह है कि आप लागू कर रहे हैं:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: 
IndexPath) -> CGFloat {

 return x
}

आपको कोशिकाओं के लिए इसकी स्वचालित ऊंचाई की गणना करने के लिए तालिका के लिए इस फ़ंक्शन इन्वर्टर को निकालने की आवश्यकता है।


धन्यवाद, मैं दुर्भाग्य से इसे ओवरराइड नहीं करता हूं: मेरे पास वास्तव में इस तालिका के लिए एक प्रतिनिधि भी नहीं है, केवल एक डेटा स्रोत है।
केकेआरटी

क्या आपने सेल के सभी किनारों के लिए टेक्स्टव्यू बाधाओं को निर्धारित किया है? और क्या आपने textView की स्क्रॉलिंग को अक्षम कर दिया है?
जाफर बर्क

मल्टी-लाइन लेबल (0 लाइन्स) में 1 के लिए बाधाएं हैं) इसके बाईं ओर 2 के साथ ऊर्ध्वाधर रिक्ति है। सुपरवाइवे 3 के लिए शीर्ष स्थान) सुपरवाइवे के लिए स्थान और 4) बॉटम स्पेस विथ बाइक्ड लेबल।
केकेआरटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.