UITableView, सेपरेटर रंग कहां सेट करना है?


162

मैंने UITableViewआईबी में एक जोड़ा है और "प्रतिनिधि" और "डेटासोर्स" सेट किया है और सभी अच्छी तरह से काम कर रहे हैं। आगे मैं जो करना चाहता था वह विभाजक रंग बदल गया था, लेकिन ऐसा करने का एकमात्र तरीका मैं प्रतिनिधि कॉलबैक में से किसी एक को जोड़ने की विधि थी, क्या मुझे इसे लगाने के लिए एक बेहतर जगह है?

फिलहाल मेरे पास ऐसा नहीं है लेकिन मैं सोच रहा था कि शायद मुझे अपने कंट्रोलर से "iVar" जोड़ने की जरूरत है जिसे मैं UITableViewIB में लिंक कर सकता हूं और फिर में विभाजक रंग सेट कर सकता हूं viewDidload?

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}

वेरिएबल को जोड़ना और इसे आईबी में हुक करना यह है कि मैंने इसे हमेशा कैसे किया है।
s1mm0t

वही तो में सोच रहा था। मैं एक ट्यूटोरियल कर रहा था जिसका उन्होंने उपयोग नहीं किया और iVar, वे सिर्फ प्रतिनिधि और डेटासोर्स कॉलबैक पर निर्भर थे। हालाँकि वे कभी भी विभाजक रंग तक नहीं पहुँच पाते हैं इसलिए शायद।
फज्योतोग

जवाबों:


335
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

मुझे आशा है कि मदद करता है - आपको इसे self.एक्सेस करने की आवश्यकता होगी , याद रखें।

स्विफ्ट 4.2

tableView.separatorColor = UIColor.red

हाय हेलेन, क्या यह @property जोड़ने की आवश्यकता के बिना इसे एक्सेस करता है, ऐसा लगता है जैसे यह करता है?

1
यह सच है। आप UITableViewController को उप-वर्ग कर रहे हैं, जो इसे एक संपत्ति घोषित करता है। इसलिए यह सुपरक्लास के एक्सेसर / सेटर विधियों को विरासत में मिला है, इसलिए आप इसे अपने अनुसार सेट कर सकते हैं। हालाँकि, आप सीधे उदाहरण चर (शायद एक अच्छी बात) तक नहीं पहुँच सकते। आप इसे एक प्रतिनिधि विधि में क्यों सेट कर सकते हैं इसका कारण यह है कि यह विधि नामक एक पैरामीटर है।
हेलेन

2
या यदि आप चाहें: self.tableView.separatorColor = UIColor.clearColor;
बब्रनामे

2
विशेष रूप से उत्तर का हिस्सा नहीं है, लेकिन [super viewDidLoad];कोड स्निपेट में जोड़ना अच्छा होगा।
टोटोकैस्टर

57

अब आप इसे सीधे आईबी में कर सकते हैं।

हालांकि यह सुनिश्चित नहीं है कि यदि यह प्रश्न मूल रूप से पोस्ट किया गया था, तो यह उपलब्ध था।

यहां छवि विवरण दर्ज करें


24

स्विफ्ट संस्करण:

override func viewDidLoad() {
    super.viewDidLoad()

    // Assign your color to this property, for example here we assign the red color.
    tableView.separatorColor = UIColor.redColor()
}

1
यह मुझे 'separatorColor' is unavailabletvOS पर एक त्रुटि दिखाता है।
केले

12

UITableView का प्रयास करें (इंस्टेंटाइप)

उद्देश्य सी:

[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"

स्विफ्ट 3.0:

UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"

नोट: परिवर्तन आवेदन में इस्तेमाल सभी तालिकाओं को प्रतिबिंबित करेगा।


3

यदि आप हर विभाजक को एक ही रंग सेट करना चाहते हैं और यह अपारदर्शी है जिसका आप उपयोग कर सकते हैं:

 self.tableView.separatorColor = UIColor.redColor()

यदि आप विभाजकों के लिए अलग-अलग रंगों का उपयोग करना चाहते हैं या विभाजक रंग को साफ़ करना चाहते हैं या अल्फा के साथ रंग का उपयोग करना चाहते हैं।

BE CAREFUL: आपको यह जानना होगा कि विभाजक में एक पृष्ठभूमि दृश्य है जिसमें एक डिफ़ॉल्ट रंग है।

इसे बदलने के लिए आप इस कार्य का उपयोग कर सकते हैं:

    func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var headerView = view as! UITableViewHeaderFooterView;
            headerView.backgroundView?.backgroundColor = myColor

           //Other colors you can change here
           // headerView.backgroundColor = myColor
           // headerView.contentView.backgroundColor = myColor
        }
    }

    func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var footerView = view as! UITableViewHeaderFooterView;
            footerView.backgroundView?.backgroundColor = myColor
           //Other colors you can change here
           //footerView.backgroundColor = myColor
           //footerView.contentView.backgroundColor = myColor
        }
    }

आशा करता हूँ की ये काम करेगा!


1
यह मुझे 'separatorColor' is unavailabletvOS पर एक त्रुटि दिखाता है।
केले

3

स्विफ्ट 3, xcode संस्करण 8.3.2, स्टोरीबोर्ड-> अपनी तालिका चुनें-> निरीक्षक-> विभाजक।

स्विफ्ट 3, xcode संस्करण 8.3.2

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.