2016-04-12 12 views
14

मेरे पास सेल में प्रोटोटाइप सेल, के साथ टेबलव्यू है जिसमें मेरे पास छविदृश्य और कुछ पाठ है। टेक्स्ट लेबल प्रोटोटाइप सेल में एक लाइन है, लेकिन कभी-कभी यह एक से अधिक पंक्ति है, मैं सर्वर कॉल के बाद तालिका दृश्य में डेटा लोड कर रहा हूं। स्टोरीबोर्ड लाइन्स में लेबल 0 पर सेट किया गया है और वर्ड रैप में लाइन ब्रेक है। मैंने http://candycode.io/automatically-resizing-uitableviewcells-with-dynamic-text-height-using-auto-layout/स्विफ्ट गतिशील तालिका सेल ऊंचाई

पर कोई प्रभाव नहीं डाला लेकिन कोई प्रभाव नहीं पड़ा। यदि मैं Using Auto Layout in UITableView for dynamic cell layouts & variable row heights का उपयोग करता हूं तो सब कुछ काम करता है क्योंकि लेबल टेक्स्ट पूर्वनिर्धारित है, लेकिन मैं सर्वर से डेटा लोड कर रहा हूं और मैं एपीआई कॉल के बाद तालिका दृश्य को फिर से लोड करता हूं, और फिर लेबल केवल एक पंक्ति है।

+0

अपने लेबल tableViewCell के निचले स्थिर है? –

+0

हाँ, मैं सुझाई गई बाधाओं का उपयोग करता हूं, क्या मुझे इसे हटा देना चाहिए? – SpyZip

+1

देखें http://stackoverflow.com/questions/36437861/what-constraints-would-prevent-my-uiviews-from-stacking-on-top-of-each-other/36438009#36438009 – Scriptable

उत्तर

22

आपको UITableViewAutomaticDimension का उपयोग करना चाहिए गतिशील सामग्री प्रदर्शित करने के लिए एक समाधान प्रदान करता है। viewDidLoad में कोड नीचे

उपयोग:

tableView.estimatedRowHeight = YourTableViewHeight 
tableView.rowHeight = UITableViewAutomaticDimension 

Read more from here

आशा है कि यह मदद करता है। :)

+1

यह autolayout के साथ काम करता है! मैं यह भी जोड़ता हूं कि इसे बनाने के लिए "tableView.estimatedRowHeight = xxx" की आवश्यकता है, यह वैकल्पिक नहीं है। – smukamuka

12

निरंतर होना निश्चित UILabel ऊंचाई बाधा नहीं बना, निरंतर अगर यह विशेषता निरीक्षक से संबंध के बराबर या उससे अधिक स्थापित करने के लिए

अपने प्रति के रूप में स्थापित करना सुनिश्चित करें UITableViewestimate पंक्ति की ऊँचाई है।

self.TableName.estimatedRowHeight = 85 

and write in UITableViewcell class 


Cell.lbl_name.sizeToFit() 


Cell.lbl_name.numberOfLines = 0 

सुनिश्चित करें कि आपका UITableViewDelegate विधि

func tableView(tableView: UITableView, 
    heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 

return UITableViewAutomaticDimension 
} 
संबंधित मुद्दे