2013-10-01 11 views
11

यदि मैंने आईओएस 7 में एक टेबल व्यू पर लाल separatorColor सेट किया है और separatorInset से UIEdgeInsetsZero या किसी अन्य कस्टम इन्सेट मान को भी सेट किया है, तो सभी अतिरिक्त या "अतिरिक्त" पंक्तियों में डिफ़ॉल्ट रंग विभाजक होते हैं। मैं इसे कैसे ठीक करूं?क्यों UITableView कस्टम separatorInset साथ "अतिरिक्त" विभाजक के लिए separatorColor उपेक्षा करता है?

separatorInset पर दस्तावेजीकरण का अंतिम वाक्य का तात्पर्य है कि यह किसी भी तरह से अतिरिक्त रिकॉर्ड को नियंत्रित करता है, लेकिन मैं नहीं दिख रहा है कि कैसे:

आईओएस 7 में और बाद में, सेल विभाजक के लिए सभी तरह से विस्तार नहीं तालिका दृश्य के किनारे। यह गुण बहुत rowHeight सेट कोशिकाओं के लिए डिफ़ॉल्ट ऊंचाई की तरह, तालिका में सभी कोशिकाओं के लिए डिफ़ॉल्ट इनसेट सेट। यह भी सादे शैली तालिकाओं के तल की तैयार की "अतिरिक्त" विभाजक के प्रबंधन के लिए प्रयोग किया जाता है।

viewDidLoad में विभाजक सेट करें:

self.tableView.separatorColor = [UIColor redColor]; 

और आप इस मिल:

self.tableView.separatorInset = UIEdgeInsetsZero; // <- any custom inset will do 
self.tableView.separatorColor = [UIColor redColor]; 
:

enter image description here

और तुम separatorInset और एक रंग सेट जब

आप इस मिल:

enter image description here

ऐसा क्यों होता है और कैसे मैं सभी विभाजक लाल बनाने के लिए और शून्य के सभी विभाजक सन्निवेश सेट कर सकते हैं? क्या यह एक बग है?

+0

वही समस्याएं किसी कस्टम सेपरेटर इन्सेट के साथ होती हैं, न केवल UIEdgeInsetsZero।सौभाग्य से स्वीकार्य समाधान किसी भी कस्टम विभाजक इन्सेट के साथ भी काम करता है। धन्यवाद! –

+0

अच्छा पकड़ो। मैंने इसे शामिल करने के लिए प्रश्न को अद्यतन किया। – Aaron

उत्तर

20

यह हल है, लेकिन मैं क्यों की व्याख्या नहीं कर सकते हैं।

दो बयानों के आदेश को स्वैप करें। रंग पहले इनसेट सेट करें, फिर:

self.tableView.separatorColor = [UIColor redColor]; 
self.tableView.separatorInset = UIEdgeInsetsZero; 

सब कुछ काम करता है:

enter image description here

+0

अजीब लेकिन यह मेरे लिए काम किया! –

+0

यह एक हैक है। –

+1

हां। क्या आप हमें बता सकते हैं कि आपका जवाब एक हैक क्यों नहीं है? यह समझा नहीं जाता कि रंग का सम्मान क्यों नहीं किया जाता है। – Aaron

2

कोशिश cellForRowAtIndexPath को यह जोड़ने। साथ ही tableView के विभाजक इन्सेट्स को सेट करना।

cell.separatorInset = UIEdgeInsetsZero;

UITableViewCell आईओएस डॉक्स से:

@property (nonatomic) UIEdgeInsets separatorInset

सेल की सामग्री के लिए इनसेट मूल्यों।

आप इस संपत्ति का उपयोग वर्तमान सेल की सामग्री और तालिका के बाएं और दाएं किनारों के बीच स्थान जोड़ने के लिए कर सकते हैं। सकारात्मक इन्सेट मान सेल सामग्री और सेल विभाजक को अंदर और दूर टेबल किनारों से दूर ले जाते हैं। ऋणात्मक मानों का इलाज इस प्रकार किया जाता है जैसे इंसेट 0 पर सेट किया गया है

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