我在故事板中有以下UIViewController
。
我面临的问题是,当我尝试在电视遥控器上向右滑动时,UIImageView
没有得到任何关注。事实上没有焦点事件发生,它试图将一些日志放入
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator)
但没有更新焦点事件。之前我在UIImageView
的故事板中直接添加了self.view
但我在某处读到了UIImageView
本身不可调焦,所以我将UIImageView
放在另一个UIView
内,但是它仍然没有得到任何关注。我已对齐UIView
的上边缘,其中包含UIImageView
和UITextView
。
任何帮助都将受到高度赞赏
另一方面,我也尝试使用UIFocusGuide,但这也不起作用。我认为我不需要使用UIFocusGuide,因为它是一个基本的右滑动焦点。
答案 0 :(得分:8)
UIImageView
默认情况下不是可聚焦的,并且不会获得焦点效果,你可以做两件事使它变得可聚焦。
UIImageView
和子类覆盖canBecameFocused
和
返回YES
,然后覆盖didUpdateFoucsInContext
并更新焦点状态的外观,例如焦点使其变大或更改颜色等。imageView.adjustImageWhenAncestorFocused = YES
上设置clipToBounds = NO
也设置superview
所以在您的情况下,当您将imageView添加到视图时,该视图应该从canBecameFocused返回YES / True。
答案 1 :(得分:2)
@C_X是对的。最重要的是,如果将UIImageView
添加到self.view
,则不要忘记继承self.view
并覆盖canBecameFofused
方法。