2011-03-10 10 views
6

मैं तालिका संपादित करने के क्रम में एक तालिका के अंदर एक UITextView का उपयोग कर रहा हूं।टेबलसेल में UITextView, यूनिवर्सल ऐप के लिए सही चौड़ाई कैसे सेट करें

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 270, 24)]; 

[cell addSubview:textName]; 
[textName release]; 

} 

यह काम करता है, लेकिन जब यह आईपैड पर चल रहा है यह सही नहीं है।

मैं cell.contentView.frame.size.width

का उपयोग करके सेल की चौड़ाई निर्धारित करने के लिए कोशिश की है लेकिन यह हमेशा परिदृश्य में iPhone और iPad दोनों

के लिए 320.0 रिटर्न आईपैड पर

इसके अलावा जब मोड की चौड़ाई बड़ी नहीं होनी चाहिए?

टेओ

उत्तर

2

आदर्श रूप में आप एक कस्टम UITableViewCell बना सकते हैं और layoutSubviews में अपने नियंत्रण आकार/पदों को समायोजित चाहते हैं।

आप tableView:cellForRowAtIndexPath: में नियंत्रण जोड़ने के लिए जा रहे हैं, तो आप tableView से ही चौड़ाई प्राप्त कर सकते हैं:

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)]; 
1
  1. आईपैड सेल, जब यह तालिका में जोड़ा गया है आकार दिया जाता है के बाद अपने समारोह रिटर्न। यदि आप टेक्स्ट फ़ील्ड को सेल के साथ आकार बदलना चाहते हैं, तो आप textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight जैसे कुछ कर सकते हैं।
  2. आपको सामग्री दृश्य में कस्टम दृश्य जोड़ना चाहिए (यानी [cell.contentView addSubview:textName])। सामग्री दृश्य स्वचालित रूप से अन्य चीजों के साथ संपादन मोड को संभालने के लिए संक्षिप्त हो जाता है।

उपवर्गीकरण UITableViewCell थोड़ा overkill है अगर तुम सिर्फ लेआउट परिवर्तित करना चाहते हैं - यह मेरी धारणा है कि स्वत: आकार मैनुअल आकार का उपयोग करते हुए layoutSubviews की तुलना में तेजी है।

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