UIImageView 没有专注于 tvOS

UIImageView not gets Focused on tvOS

我在故事板中有以下 UIViewController

我在这里面临的问题是,当我尝试在电视遥控器上向右滑动时,我的 UIImageView 没有获得任何焦点。实际上没有发生焦点事件,它尝试将一些日志放入

 override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator)

但是没有焦点事件更新。早些时候我在故事板的 self.view 上直接添加了 UIImageView,但我在某处读到 UIImageView 本身不可聚焦,所以我将我的 UIImageView 放在另一个 UIView 中,但是它仍然没有得到任何关注。我对齐了 UIView 的顶部边缘,其中包含 UIImageViewUITextView.

任何帮助将不胜感激

附带说明一下,我也尝试使用 UIFocusGuide,但这也不起作用。我认为我不需要使用 UIFocusGuide,因为它是基本的右滑焦点。

UIImageView默认是不可聚焦的,也不会得到聚焦效果,你可以做两件事让它可以聚焦。

  1. 子类 UIImageView 并在子类中覆盖 canBecameFocused 并且 return YES,然后覆盖 didUpdateFoucsInContext 并更新焦点状态的外观,例如焦点是否使其变大或改变颜色等。
  2. 第二个选项是将其添加到可聚焦的视图中,然后设置 imageView.adjustImageWhenAncestorFocused = YES 并在 superview
  3. 上设置 clipToBounds = NO

所以在您的情况下,当您将 imageView 添加到视图时,该视图应该 return YES/True 来自 canBecameFocused。

@C_X 是对的。最重要的是,如果 UIImageView 被添加到 self.view 那么不要忘记继承 self.view 并覆盖 canBecameFofused 方法。