2013-08-09 8 views
10

इसलिए मैंने UITableViewHeaderFooterView को उपclassing करने और -layoutSubviews ओवरराइड करके जिस तरह से लेबल करना चाहते हैं उसे संरेखित करने का प्रयास किया।कस्टम लेआउट UITableViewHeaderFooterView

जब मैं super पर कॉल करता हूं और लेबल frame बदलता हूं, हालांकि, ऐप एक अनंत -layoutSubviews लूप में फंस गया प्रतीत होता है।

मेरे कोड इस तरह दिखता है:

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    self.textLabel.frame = CGRectMake(10.0, 10.0, 300.0, 40.0); 
} 

इसे ठीक करने पर कोई भी विचार?

+0

मैं एक ही समस्या है ... आप कभी भी इस समाधान हो गया? – Accatyyc

+0

मैंने UIView से उप-वर्गीकरण समाप्त कर दिया और इन लेबलों को स्वयं जोड़ दिया। –

+0

ठीक है। मैं इसे लेता हूं तो आपको तालिका दृश्य से हेडर पुन: उपयोग नहीं मिलता है? मुझे इसे अंतर्निहित लेबलों का उपयोग न करके काम करने के लिए मिला और अपना खुद का जोड़ा, इस तरह आप अभी भी हेडर का पुन: उपयोग कर सकते हैं। यद्यपि यह काम करने के लिए थोड़ी देर लग गई। – Accatyyc

उत्तर

2

ऐसा लगता है कि backgroundView या contentView के फ्रेम को संशोधित करने का प्रयास न केवल अनंत लूप का कारण बनता है, यह आपके फ्रेम पर सेट किए गए किसी भी मूल्य को अनदेखा कर देगा, जिससे उनका अस्तित्व काफी बेकार हो जाएगा। मैं backgroundView और contentView का उपयोग अपने स्वयं के पृष्ठभूमि दृश्यों और लेआउट गुणों के साथ अपने स्वयं के कस्टम सबव्यूव के लिए गूंगा कंटेनर के रूप में करने के लिए वापस कर दिया है। : एस

-1

मैं सिर्फ एक ऐसी ही समस्या के साथ आया था, और यह बहुत की तरह drawRect:(CGRect) में फ्रेम की स्थापना हल:

- (void)drawRect:(CGRect)rect { 
    CGRect frame = self.textLabel.frame; 
    frame.origin.x = 0; 
    frame.size.width = self.frame.size.width; 
    self.textLabel.frame = frame; 
} 
+0

'-drawRect:' वास्तव में एक विकल्प नहीं है। सीमाओं के आकार में परिवर्तन होने पर इसे भी बुलाया जा सकता है, लेकिन अगर मैं '-layoutIfNeeded' का उपयोग करके लेआउट को मजबूर करता हूं तो ट्रिगर नहीं किया जाएगा। इसके अलावा, यह विधि का अर्थपूर्ण उपयोग नहीं है। –

+0

@ क्रिस्टियन स्कैनर बच्चे के विचारों को जोड़ने के बिना कोई सुझाव? –

+0

क्षमा करें, मुझे आपका प्रश्न समझ में नहीं आया? –

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