不要为 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 将不会在单元格上显示任何默认焦点:这完全取决于您。
我有一个非常简单的单元格,我希望文本在聚焦时为 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 将不会在单元格上显示任何默认焦点:这完全取决于您。