मैं UITableViewCell को अक्षम कैसे कर सकता हूं?




appearance (4)

मुझे UITableview के बारे में पता है : कुछ पंक्तियों के लिए चयन को अक्षम कैसे करें , लेकिन दूसरों और cell.selectionStyle = UITableViewCellSelectionStyleNone नहीं हैं। चयन cell.selectionStyle = UITableViewCellSelectionStyleNone , लेकिन मैं एक सेल (या उस मामले के लिए कोई UIView ) कैसे अक्षम कर सकता हूं नीचे (ग्रेड-आउट) नीचे दिखाई देता है?


@ अजय शर्मा के लिए धन्यवाद, मैंने यह पता लगाया कि UITableViewCell अक्षम कैसे किया जाए:

// Mac's native DigitalColor Meter reads exactly {R:143, G:143, B:143}.
cell.textLabel.alpha = 0.439216f; // (1 - alpha) * 255 = 143
aSwitch.enabled = NO; // or [(UISwitch *)cell.accessoryView setEnabled:NO];

और फिर, वास्तव में सेल को अक्षम करने के लिए:

cell.userInteractionEnabled = NO;

आप सेल के टेक्स्ट फ़ील्ड को ग्रे ग्रे आउट करने के लिए अक्षम कर सकते हैं:

cell!.isUserInteractionEnabled = false
cell!.textLabel!.isEnabled = false
cell!.detailTextLabel!.isEnabled = false

एक स्विफ्ट एक्सटेंशन जो संदर्भ में अच्छी तरह से काम करता है मैं इसका उपयोग कर रहा हूं; आपकी माइलेज भिन्न हो सकती है।

स्विफ्ट 2.x

extension UITableViewCell {
    func enable(on: Bool) {
        for view in contentView.subviews as! [UIView] {
            view.userInteractionEnabled = on
            view.alpha = on ? 1 : 0.5
        }
    }
}

स्विफ्ट 3:

extension UITableViewCell {
    func enable(on: Bool) {
        for view in contentView.subviews {
            view.isUserInteractionEnabled = on
            view.alpha = on ? 1 : 0.5
        }
    }
}

अब यह सिर्फ myCell.enable(truthValue) को कॉल करने का मामला है।


केविन ओवेन्स से बढ़िया विस्तार, यह स्विफ्ट 2.x के साथ काम करने में मेरा सुधार है:

extension UITableViewCell {
    func enable(on: Bool) {
        self.userInteractionEnabled = on
        for view in contentView.subviews {
            view.userInteractionEnabled = on
            view.alpha = on ? 1 : 0.5
        }
    }
}

स्विफ्ट 3:

extension UITableViewCell {
    func enable(on: Bool) {
        self.isUserInteractionEnabled = on
        for view in contentView.subviews {
            view.isUserInteractionEnabled = on
            view.alpha = on ? 1 : 0.5
        }
    }
}




appearance