2015-11-07 94 views
1

我有以下UIViewController,这是我在故事板上做的。UIImageView不专注于tvOS

StoryBoad

我面对这里的问题是,当我试图在电视上向右滑动遥控我UIImageView没有得到任何的焦点。事实上没有发生焦点事件,它试图把一些日志

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

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

任何帮助将高度赞赏

在一个侧面说明我也试图与UIFocusGuide做,但没有也行。我认为我不需要使用UIFocusGuide,因为它是一个基本的右侧滑动焦点。

+0

@ Madu-我有同样的问题。你能告诉我如何解决它。我也尝试了下面的答案。但我没有得到成功。 –

+0

最后我做的是添加一个collectionview,并在collectionviewcell中添加了一个imageView。这对我来说至少做了这个工作 – Madu

回答

6

UIImageView不是默认可以调焦的,并且不会获得焦点效果,您可以做两件事使其焦点集中。

  1. 子类UIImageView并在子类中覆盖canBecameFocused和 回报YES,然后覆盖didUpdateFoucsInContext和更新的外观的焦点状态,就像如果焦点使它更大或改变颜色等
  2. 第二个选择是将其添加到鉴于这是可聚焦,然后设置imageView.adjustImageWhenAncestorFocused = YES还设置clipToBounds = NOsuperview

所以你的情况为你添加的ImageView到视图,则该视图应该返回YES/T来自canBecameFocused的rue。

+0

第二种情况有拼写错误:adjustImageWhenAncestorFocused应该调整** s ** ImageWhenAncestorFocused。 – JMI

+0

你好,阿德南。我尝试了继承并重写canBecomeFocused和didUpdateFocusInContext方法,但仍没有更新焦点更新。有什么建议么? – shivamkaushik

+0

什么是您的视图层次结构?如果您将视图添加到其他视图,请确保您重写了canBecomeFocused方法。 –

2

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