2009-01-12 16 views
6

मैं ट्विटर स्थिति से भरा एक टेबल प्रदर्शित करने की कोशिश कर रहा हूं (हां, यह Stanford Presence 2 असाइनमेंट है), जो कि विभिन्न आकार के हैं। की एक बहु लाइन शब्द-रैपिंग क्षेत्र पाने के लिएपरिवर्तनीय आकार वाली बहु-पंक्ति UITableCell को लागू करने का सबसे अच्छा तरीका क्या है?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *) indexPath 
{ 
    NSString *text = ...; 
    UIFont *font = [UIFont systemFontOfSize:...]; 
    CGSize withinSize = CGSizeMake(tableView.width, 1000]; 
    CGSize size = [text sizeWithFont:font constrainedToSize:withinSize lineBreakMode:UILineBreakModeWordWrap]; 

    return size.height + somePadding; 
} 

मैं (दोनों के लिए और कुछ तोड़ मरोड़) दो दृष्टिकोण की कोशिश की है: मैं अपेक्षाकृत आसानी से कोड है कि (accompanying lecture 9 से) का अनुमान लगाती है के साथ मेरी पंक्तियों के लिए उपयुक्त ऊंचाई निर्धारित कर सकते हैं मेरी टेबल पंक्ति में पाठ।

  1. अपने कस्टम UITableCell उपवर्ग के लिए एक subview के रूप में एक UILabel जोड़ें, और करने के लिए numberOfLines गुण सेट या तो ऊपर ऊंचाई (जैसे कि, 6), या करने के लिए 0 (सैद्धांतिक रूप से असीमित) के आधार पर एक गणना की संख्या। numberOfLines को अनदेखा किया गया है; मैं या तो 1 या 2 लाइनों को देखता हूं, और नहीं।

  2. एक सबव्यू के रूप में केवल पढ़ने के लिए UITextView जोड़ें। इसमें समस्या है कि UITextView मेरी स्क्रॉलिंग खाती है; मैं पंक्ति से पंक्ति तक सुचारू रूप से आगे बढ़ने के बजाय एक UITextView पंक्ति के अंदर स्क्रॉलिंग समाप्त करता हूं। अगर मैं UITextView पर स्क्रॉलिंग अक्षम करता हूं, तो मैं बिल्कुल स्क्रॉल करने में असमर्थ हूं।

यह करना एक आम बात है; इसे पूरा करने का सबसे अच्छा तरीका क्या है?

उत्तर

3

आप UITextView की संपत्ति को देखना चाहेंगे। इससे इनपुट को UITableView तक पारित करने की अनुमति देनी चाहिए ताकि आपको स्क्रॉलिंग मिल सके।

+0

स्क्रॉलिंग अक्षम होने के साथ ऐसा लगता है। मुझे लगता है कि कहीं मेरे यूआईटीएक्स्टव्यू को उचित रूप से आकार नहीं मिल रहा है। –

+0

हाँ, आखिरकार उस काम को करने के लिए पैरामीटर का सही ऑटोोज़ाइजिंग सेट प्राप्त करने में सक्षम था। –

0

उपयोगकर्ताInteractionEnabled = NO, scrollEnabled = NO के साथ खेलते समय, और आईबी में सेट सही ऑटोसाइजिंग पैरामीटर प्राप्त करने के बाद, मुझे लगता है कि UILabel के साथ नंबरऑफलाइन = 0 के साथ जा रहा है और उसी ऑटोसाइजिंग पैरामीटर अंततः एक बेहतर विचार है, अगला व्यक्ति

2

यहां इस विषय पर पोस्ट किए गए ब्लॉग के लिए एक लिंक है। मैंने UILabel का उपयोग नंबरऑफलिन्स = 0. के साथ किया था। मुझे आशा है कि यह कुछ मदद की होगी।

Sample Project with Variable Sized UITableViewCell

संबंधित मुद्दे

 संबंधित मुद्दे