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


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

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

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

138
2017-07-29 16:33


मूल


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


जवाब:


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

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


284
2017-07-29 17:18



हाय हेलेन, क्या यह @property जोड़ने की आवश्यकता के बिना इसे एक्सेस करता है, ऐसा लगता है कि ऐसा करता है? - fuzzygoat
यह सच है। आप UITableViewController subclassing हैं, जो इसे एक संपत्ति के रूप में घोषित करता है। इसलिए यह सुपरक्लास के एक्सेसर / सेटर विधियों को विरासत में लेता है, ताकि आप इसे तदनुसार सेट कर सकें। हालांकि, आप सीधे आवृत्ति चर का उपयोग नहीं कर सकते (शायद एक अच्छी बात)। एक प्रतिनिधि विधि में इसे सेट करने का कारण यह है क्योंकि यह विधि विधि के लिए पैरामीटर है। - Helen
या यदि आप चाहें: self.tableView.separatorColor = UIColor.clearcolor; - bbrame
विशेष रूप से उत्तर का हिस्सा नहीं है, लेकिन जोड़ना [super viewDidLoad]; कोड स्निपेट के लिए अच्छा होगा। - totocaster


अब आप सीधे आईबी में ऐसा करने में सक्षम होना चाहिए।

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

enter image description here


51
2017-07-15 10:28



धन्यवाद, एक्सकोड 6.1 का उपयोग कर एक आकर्षण की तरह काम करता है। - King-Wizard


तीव्र संस्करण:

override func viewDidLoad() {
    super.viewDidLoad()

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

21
2017-12-24 10:55



यह मुझे एक त्रुटि दिखाता है 'separatorColor' is unavailable टीवीओएस पर - Banana


प्रयत्न + (instancetype) उपस्थिति 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"

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


8
2018-02-17 13:13





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

 self.tableView.separatorColor = UIColor.redColor()

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

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

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

    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
        }
    }

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


2
2017-09-28 08:24



यह मुझे एक त्रुटि दिखाता है 'separatorColor' is unavailable टीवीओएस पर - Banana


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

Swift 3, xcode version 8.3.2


2
2018-06-19 06:34