ड्राइंग के लिए सर्वोत्तम अभ्यास संभवतः एक डुप्लिकेट लेकिन मुझे SO पर एक विशिष्ट प्रश्न नहीं मिला, तो यहां यह है।गतिशील UITableView पंक्ति ऊंचाई
मैं सभी पंक्तियों के लिए गतिशील रूप से बदलती ऊंचाई के बारे में उत्सुक हूं, आमतौर पर, क्योंकि आप किसी लेबल के लिए उपयोग किए जाने वाले एनएसएसटींग की लंबाई नहीं जानते हैं।
मुझे पता है तुम पंक्ति ऊंचाइयों बदलने के लिए इस प्रतिनिधि विधि का उपयोग करना होगा:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
समस्या यह प्रतिनिधि विधि से पहले सेल बनाई गई है कहा जाता है (अर्थात cellForRowAtIndexPath
से पहले कहा जाता है) किया जाता है।
तो, मैंने जो सोचा है, वह है viewWillAppear
में एक नकली सेल बनाने के लिए और एक विधि जो तालिका दृश्य के डेटा स्रोत (जो मेरे मामले में भी एक सरणी है) में नक्शा की ऊंचाई को जोड़ती है।
viewWillAppear
यह एक महत्वपूर्ण तरीका लागू करता ऊंचाई प्राप्त करने के लिए: heightForRowAtIndexPath
में फिर
[NSString sizeWithFont: constrainedToSize: lineBreakMode:]
मैं सेल ऊंचाई इतनी तरह वापस कर सकते हैं:
//cellHeights is an ivar populated in viewWillAppear
return [[cellHeights objectAtIndex:indexPath.row] floatValue];
अगर वहाँ एक था मैं सोच रहा था पंक्ति ऊंचाई गतिशील रूप से बदलने के लिए बेहतर तरीका?
मुझे एहसास है कि यह बड़ी संख्या में पंक्तियों (1000 से अधिक, मुझे विश्वास है) के लिए प्रदर्शन को कम कर देगा। लेकिन मेरे मामले में, मेरी पंक्तियां उस संख्या के करीब कभी नहीं आतीं। तो प्रदर्शन हिट नगण्य है।
अग्रिम धन्यवाद!
बहुत बुरा। मैं और भी प्रतिक्रियाओं की उम्मीद कर रहा था। आपके सहयोग के लिए धन्यवाद! –