我正在使用此代码设置焦点上的UITableViewCells的颜色:
class EpisodesTableViewCell: UITableViewCell {
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator)
if let previous = context.previouslyFocusedView as? EpisodesTableViewCell {
previous.contentView.backgroundColor = UIColor.clearColor()
}
if let next = context.nextFocusedView as? EpisodesTableViewCell {
next.contentView.backgroundColor = globalDarkGrey
}
}
}
当从一个桌子行移动到另一个桌子行时,颜色会根据需要改变,但不会没有通常的白色焦点颜色的短暂(并且相当刺激)闪光。
通过不调用super
我避免使用闪光灯,但丢失了点击动画。
关于如何彻底摆脱白色的任何想法?
答案 0 :(得分:2)
尝试更改addCoordinatedAnimations
内的背景颜色:
coordinator.addCoordinatedAnimations {
if let previous = context.previouslyFocusedView as? EpisodesTableViewCell {
previous.contentView.backgroundColor = UIColor.clearColor()
}
if let next = context.nextFocusedView as? EpisodesTableViewCell {
next.contentView.backgroundColor = globalDarkGrey
}
}
答案 1 :(得分:0)
上面的答案非常接近让我在那里,但这里有一个可用的形式:
coordinator.addCoordinatedAnimations({
if let previous = context.previouslyFocusedView as? EpisodesTableViewCell {
previous.contentView.backgroundColor = UIColor.clearColor()
}
if let next = context.nextFocusedView as? EpisodesTableViewCell {
next.contentView.backgroundColor = globalDarkGrey
}
}, completion: nil)