2012-05-12 19 views
5

पर खड़ी विभाजक ड्रा मैं एक सादे स्टाइल UITableView था, और यह कोशिकाओं UITableViewCell का एक उपवर्ग हैं।UITableViewCell

सेल उपवर्ग में मैं (लंबवत विभाजक के लिए) में इस ड्राइंग कोड डालने के लिए drawRect overrode:

CGContextRef c = UIGraphicsGetCurrentContext(); 
CGContextSetStrokeColorWithColor(c, [[UIColor grayColor] CGColor]); 
CGContextBeginPath(c); 
CGContextMoveToPoint(c, self.frame.size.height + 0.5f, 0); 
CGContextAddLineToPoint(c, self.frame.size.height + 0.5f, self.frame.size.height); 
CGContextStrokePath(c); 

यह बहुत अच्छा काम किया। हालांकि अब मैंने टेबलव्यू शैली को समूहबद्ध करने के लिए बदल दिया है। रेखा बस खींची नहीं है। हालांकि सेटिंग ब्रेकपॉइंट दिखाती है कि drawRect विधि को कॉल किया जाता है।

मैं उपवर्गों UIView एक छोटी लाइन आकर्षित करने के लिए, विशेष रूप से के रूप में मैं पहले से ही tableview सेल subclassed है और मैं सिर्फ सेल पर चित्रकारी करना चाहते से बचने के लिए चाहते हैं। तो कोड अचानक समूहबद्ध टेबलव्यू पर क्यों काम करना बंद कर देता है?

+0

सिम्युलेटर n cleening ur prjct – Saad

उत्तर

10

यह अच्छा विचार UITableViewCell उपवर्गों में drawRect ओवरराइड करने के लिए नहीं है। आप कस्टम सेल की backgroundView स्थापित करने के लिए नहीं करना चाहते हैं, तो आप सिर्फ 1px चौड़ाई का जोड़ सकते हैं सरल UIView

UIView* vertLineView = [[UIView alloc] initWithFrame:CGRectMake(80, 0, 1, 44)]; 
vertLineView.backgroundColor = [UIColor redColor]; 
[self.contentView addSubview:vertLineView]; 
+1

को रीसेट करने का प्रयास करें। या फिर आप सेल के लिए एक कस्टम लाइन छवि के साथ एक UIImageView जोड़ सकते हैं। – Joel

+1

क्यों यह एक अच्छा विचार नहीं है? –

+0

मुझे लगता है कि मुझे लगता है कि के बारे में गलत था। कुछ मामलों में 'drawRect' को ओवरराइड करना उचित हो सकता है। – onegray