tvos抑制白色焦点效果

时间:2016-04-05 04:15:10

标签: uitableview tvos

我正在使用此代码设置焦点上的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我避免使用闪光灯,但丢失了点击动画。

关于如何彻底摆脱白色的任何想法?

2 个答案:

答案 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)