【问题标题】:UIImageView not gets Focused on tvOSUIImageView 没有专注于 tvOS
【发布时间】:2016-02-08 15:37:58
【问题描述】:

我在故事板中有以下UIViewController。

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

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

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

我们将不胜感激任何帮助

在旁注中,我也尝试过使用 UIFocusGuide,但这也不起作用。我认为我不需要使用 UIFocusGuide,因为它是一个基本的向右滑动焦点。

【问题讨论】:

  • @Madu- 我有同样的问题。你能告诉我如何解决它。我也尝试了以下答案。但我没有成功。
  • 最后我添加了一个collectionview,并在collectionviewcell中添加了一个imageView。这至少对我有用

标签: ios swift uiimageview storyboard tvos


【解决方案1】:

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

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

因此,在您将 imageView 添加到视图时,该视图应从 canBecameFocused 返回 YES/True。

【讨论】:

  • 第二种情况有错字:adjustImageWhenAncestorFocused 应该是adjustsImageWhenAncestorFocused.
  • 你好,阿德南。我尝试子类化和覆盖 canBecomeFocused 和 didUpdateFocusInContext 方法,但仍然没有更新焦点更新。有什么建议吗?
  • 您的视图层次结构是什么?如果您要将视图添加到其他视图,请确保您覆盖了 canBecomeFocused 方法。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多