इसलिए मेरे पास 2 प्रोटोटाइप सेल के साथ एक टेबल व्यू है। यहाँ मेरा कोड है:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! ItemDetailsCell
cell.centerImage.image = mainImage
cell.heading.text = detailsHeadings[indexPath.row]
let headingString = detailsHeadings[indexPath.row]
cell.body.text = details[headingString]
tableView.rowHeight = cell.labelBlack.frame.height + 40
return cell
} else {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as! ItemDetailsCell
cell.heading.text = detailsHeadings[indexPath.row]
let headingString = detailsHeadings[indexPath.row]
cell.body.text = details[headingString]
let bodyString = details[headingString]
let labelWidth = Int(cell.body.frame.width)
println(labelWidth)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: labelWidth, height: 10000))
label.text = bodyString
label.numberOfLines = 100
label.font = UIFont(name: "OpenSans-Light", size: 12.0)
label.sizeToFit()
tableView.rowHeight = label.frame.height + 3
return cell
}
}
तो दूसरे प्रोटोटाइप सेल में एक शब्दकोश से दिए गए मानों के साथ सिर्फ दो लेबल हैं। सेल आकार में पाठ की कितनी पंक्तियों के आधार पर विस्तार या अनुबंध करने की आवश्यकता है। ऑटो लेआउट में मेरे पास 0 के लिए निर्धारित लाइनों की संख्या है, इसलिए इसे कई लाइनों की आवश्यकता होगी। यह ठीक काम करता है सिवाय जब आप ऐप के भीतर स्क्रॉल करते हैं तो यह दृश्य को स्नैप करेगा क्योंकि उपयोगकर्ता नीचे से ऊपर स्क्रॉल करते हैं। इससे बचने का कोई रास्ता है क्या?
किसी भी सहायता के लिए अग्रिम रूप से धन्यवाद।
2 जवाब
मुझे यह वास्तव में कुछ और समय बिताने के बाद मिला:
इसने मुझे वो दिया जो मुझे चाहिए था। मैंने अपने कोड के उन हिस्सों को हटा दिया है जो रोहाइट सेट करते हैं और फिर मेरे सेल साइज़ को बाधित करने के लिए viewDidLoad पद्धति के साथ-साथ ऑटो लेआउट का उपयोग किया है और जब आप स्क्रॉल करते हैं, तो बिना किसी तड़क-भड़क के यह काम कर रहा है।
आप तालिका के पंक्ति पंक्ति को बदल रहे हैं। यह बहुत गलत है। तालिका दृश्य की पंक्तिहाइट उन सभी पंक्तियों के लिए डिफ़ॉल्ट है जिनकी अपनी ऊँचाई नहीं है, इसलिए आप प्रभावी रूप से सभी कक्षों की ऊँचाई बदल रहे हैं।
आपको प्रतिनिधि विधि का उपयोग करना चाहिए तालिका देखें: heightForRowAtIndexPath:
संबंधित सवाल
नए सवाल
ios
iOS, Apple iPhone, iPod टच और iPad पर चलने वाला मोबाइल ऑपरेटिंग सिस्टम है। IOS प्लेटफॉर्म पर प्रोग्रामिंग से संबंधित प्रश्नों के लिए इस टैग [ios] का उपयोग करें। उन प्रोग्रामिंग भाषाओं के लिए विशिष्ट मुद्दों के लिए संबंधित टैग [उद्देश्य-सी] और [स्विफ्ट] का उपयोग करें।