我有以下
UIViewController
,我正在故事板中做。
我在这里面临的问题是,当我尝试在电视遥控器上向右滑动时,我的
UIImageView
没有获得任何焦点。事实上没有焦点事件发生,它尝试放入一些日志
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator)
但是没有更新焦点事件。早些时候,我在故事板中直接将
UIImageView
添加到 self.view
上,但我在某处读到 UIImageView
本身不可聚焦,所以我将我的 UIImageView
放在另一个 UIView
中,但它仍然没有获得任何焦点。我已对齐 UIView
的顶部边缘,其中包含 UIImageView
和 UITextView
。
任何帮助将不胜感激
顺便说一句,我也尝试使用 UIFocusGuide 进行操作,但这也不起作用。我认为我不需要使用 UIFocusGuide 因为它是基本的右滑动焦点。
UIImageView
默认是不可聚焦的,并且不会获得聚焦效果,你可以做两件事来使其可聚焦。
UIImageView
并在子类中覆盖 canBecameFocused
和
返回 YES
,然后覆盖 didUpdateFoucsInContext
并更新焦点状态的外观,例如焦点是否变大或改变颜色等。imageView.adjustImageWhenAncestorFocused = YES
并在 clipToBounds = NO
上设置
superview
因此,在您的情况下,当您将 imageView 添加到视图时,该视图应该从 canBecameFocused 返回 YES/True 。
@C_X 是对的。最重要的是,如果将
UIImageView
添加到 self.view
那么不要忘记子类 self.view
并重写 canBecameFofused
方法。
您的图像将成为表视图或集合视图的一部分。然后设置即可
adjustsImageWhenAncestorFocused = true
仅此而已。