15

UICollectionViewCell我的tvOS 应用程序中有一个自定义项。它有一个UIImageView和一些UILabels。UIFocusEnvironment我可以通过毫无问题地实现协议来使单元格聚焦,但我不知道如何为我的自定义单元格提供聚焦的外观。(提升和响应触摸板上的用户移动)。

我知道UIImageView' 的adjustsImageWhenAncestorFocused属性,但这只会提升我的单元格中的图像,而不是整个单元格。

有没有办法让 tvOS 将(看似)标准焦点外观/行为应用于我的自定义视图,还是我必须手动完成所有操作?

提前致谢。

4

1 回答 1

17

tvOS 12.0+ 更新:查看 Apple 在TVUIKit中提供的新类!您现在可以制作具有这种聚焦行为的自定义视图!

————</p>

我在 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,这很漂亮,但可能只对图像有意义)。

于 2015-09-21T18:19:44.717 回答