不要为 UITableViewCell 使用默认的焦点动画

Don't use default focus animation for UITableViewCell

我有一个非常简单的单元格,我希望文本在聚焦时为 1.0 alpha,在未聚焦时为 0.5。这通过覆盖 didUpdateFocusInContext

import Foundation

class SettingsTableViewCell: UITableViewCell {


override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
    super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator)

    var textColor:UIColor?

    if self.focused == true {
        textColor = UIColor.blackColor().colorWithAlphaComponent(1.0)
    } else {
        textColor = UIColor.blackColor().colorWithAlphaComponent(0.5)
    }

    let attributedTitle = self.textLabel?.attributedText?.mutableCopy() as! NSMutableAttributedString
    let range =  NSMakeRange(0, attributedTitle.length)
    attributedTitle.addAttribute(NSForegroundColorAttributeName, value: textColor!, range: range)
    self.textLabel?.attributedText = attributedTitle

}

}

但是,我不想要聚焦时的白色背景...如何摆脱它?

将单元格的 focusStyle 设置为 UITableViewCellFocusStyleCustom,UIKit 将不会在单元格上显示任何默认焦点:这完全取决于您。