我的tvOS应用中有自定义UICollectionViewCell
。它有一个UIImageView
和一些UILabel
s。通过实现UIFocusEnvironment
协议可以毫无问题地让单元格得到集中,但我无法弄清楚如何为我的自定义单元格提供重点外观。 (提升和响应用户在触摸板上的移动)。
我知道UIImageView
的{{1}}属性,但这只会提升我单元格中的图像,而不是整个单元格。
有没有办法让tvOS将(看似)标准的焦点外观/行为应用到我的自定义视图中,还是我必须手动完成所有操作?
提前致谢。
答案 0 :(得分:16)
更新tvOS 12.0 +:查看Apple在TVUIKit中提供的新课程!您现在可以制作具有此聚焦行为的自定义视图!
----
我在Apple开发者论坛上问了同样的问题。 Apple工作人员回答:
对于自定义视图,您必须实现焦点外观 你自己。在焦点更新方法中,您可以执行诸如应用之类的操作 转换并使用UIMotionAffect API。
- (void)didUpdateFocusInContext:(UIFocusUpdateContext *)context withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator { if (context.nextFocusedView == self) { // handle focus appearance changes } else { // handle unfocused appearance changes } }
我认为制作UIView
扩展名能够将相同的行为应用于任何自定义视图会非常有用。
也许他们希望我们能够实施更有趣的方式来向用户展示焦点?这只是为UIImageView
轻松启用此功能的一个很好的理由(更不用说这种行为还会在UIImageView
上添加模拟光,这很漂亮,但可能只对图像有意义)。