所以我有一些按钮,我通过Interface Builder添加到视图中,而不是使用我自定义的系统按钮.我试图弄清楚如何改变特征,例如在不同状态(突出显示,聚焦等)期间的文本颜色和背景颜色.
我似乎不能通过IB做到这一点,所以我可能会创建一个UIButton的子类并在那里更改它们,但是我很难找到要更改的属性.我没有在文档中明确提到它们
你肯定是在正确的轨道上!
一旦你继承了UIButton,就可以覆盖这个函数didUpdateFocusInContext
(来自UIFocusEnvironment
protocol,UIButton
在tvOS上已经实现了)
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) { super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator) if context.nextFocusedView == self { // This is when the button will be focused // You can change the backgroundColor and textColor here } else { // This is when the focus has left and goes back to default // Don't forget to reset the values } }
您还可以获得幻想并转换框架以模仿默认的"焦点"效果!