UIImageView没有专注于tvOS

时间:2015-11-07 15:49:46

标签: ios swift uiimageview storyboard tvos

我在故事板中有以下UIViewController

StoryBoad

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

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

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

任何帮助都将受到高度赞赏

另一方面,我也尝试使用UIFocusGuide,但这也不起作用。我认为我不需要使用UIFocusGuide,因为它是一个基本的右滑动焦点。

2 个答案:

答案 0 :(得分:8)

UIImageView默认情况下不是可聚焦的,并且不会获得焦点效果,你可以做两件事使它变得可聚焦。

  1. 子类UIImageView和子类覆盖canBecameFocused和 返回YES,然后覆盖didUpdateFoucsInContext并更新焦点状态的外观,例如焦点使其变大或更改颜色等。
  2. 第二个选项是将其添加到可关注的视图中,然后在imageView.adjustImageWhenAncestorFocused = YES上设置clipToBounds = NO也设置superview
  3. 所以在您的情况下,当您将imageView添加到视图时,该视图应该从canBecameFocused返回YES / True。

答案 1 :(得分:2)

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