2010-01-05 19 views
10

मेरे पास एक UITableViewCell है कि मैं दाईं ओर एक दृश्य जोड़ना चाहता हूं (एक्सेसरी व्यू के अतिरिक्त)। मैंने टेक्स्ट लेबल के आकार को कुछ पिक्सेल संकुचित करने की कोशिश की लेकिन यह सिर्फ इसे वापस आकार देता है।UITableViewCell टेक्स्ट का आकार बदलें लेबल

क्या टेक्स्ट लेबल का आकार बदलने का कोई तरीका है?

उत्तर

8

ऑब्जेक्ट प्रकार UITableViewCellStyleDefault की UITableViewCell मामलों में, डिफ़ॉल्ट पाठलेबल संपत्ति द्वारा संदर्भित, आकार नहीं बदला जा सकता है, मेरे अनुभव में कम से कम नहीं। इन मामलों में सबसे अच्छा विचार यूआईटीबल व्यूसेल का अपना उप-वर्ग बनाना है, कोड में या इंटरफ़ेस बिल्डर के साथ भी यदि आप चाहते हैं, और उसे वह लेआउट दें जो आप चाहते हैं।

- (void)layoutSubviews { 
[super layoutSubviews]; //The default implementation of the layoutSubviews 

CGRect textLabelFrame = self.textLabel.frame; 
textLabelFrame.size.width = _textLabelMaxWidth; 
self.textLabel.frame = textLabelFrame; 
} 

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

16

वास्तव में यह अगर आप एक UITableViewCell उपवर्ग बना सकते हैं और layoutSubviews विधि ओवरराइड आकार दिया जा सकता।

+0

यह केवल मेरे लिए काम करता है जब सेल पुनः लोड किया जाता है, किसी भी विचार? –

+0

@AdamCarter हां, यह काम करने का अनुमान है, जब तक कि आप इसे किसी अलग समय और किसी अन्य घटना से बदलना नहीं चाहते। –

+1

यह मेरे लिए बहुत उपयोगी था। मेरे पास UITableViewCell का सबक्लास था और लेबल आकार स्टोरीबोर्ड डिफ़ॉल्ट पर लौट रहेगा। मैं इसके साथ सलाह की सराहना करता हूं! – mikeho

1

मैंने देखा है कि textLabel accessoryView को समायोजित करने के लिए आकार बदलता है। इसलिए यदि आप लेबल को पूरे सेल का उपयोग करना चाहते हैं, तो आप accessoryView को शून्य पर सेट कर सकते हैं (मुझे लगता है कि यह वैसे भी डिफ़ॉल्ट व्यवहार है)। या, उदाहरण के लिए, यदि आप लेबल को केवल बाएं आधा सेल लेना चाहते हैं, तो एक्सेसरी व्यू एक खाली UIView बनें जो सही आधे सेल को फैलाता है। (खाली नहीं होना चाहिए, आप वहां सामान डाल सकते हैं ... मेरा मुद्दा यह है कि यह टेक्स्ट लेबल को छोटा कर देगा।)

0

आप इस सरल तरीके से UITableView सेल का आकार बदल सकते हैं। सबसे पहले, एक नज़र डालें मेरा नमूना परियोजना।

ResizableUIView

यह आपको बताएंगे कि कैसे आप की कमी पैदा करके सबसे आसान तरीका में अपने आंतरिक घटक पर UITableView सेल आधार आकार बदल सकते हैं।

tblTest.estimatedRowHeight = 100 // This is where you can set your estimated row height 
    tblTest.rowHeight = UITableViewAutomaticDimension 

एक अन्य महत्वपूर्ण तथ्य यह है अपने लेबल लाइनों है: enter image description here

यह होना चाहिए

आदेश आप समझ बनाने के लिए, मैं UIView अंदर UILabel निर्धारित करते हैं, मैं कैसे पर एक नज़र अपने माता-पिता UIView पर निर्मित बाधाएं।

यदि आपको अभी भी किसी भी मदद की ज़रूरत है, तो बस पूछें।

गुड लक

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