【问题标题】:tvOS - Focus particular item in a Table ViewtvOS - 在表格视图中聚焦特定项目
【发布时间】:2016-02-25 08:18:04
【问题描述】:

tvOS 开发中 - 默认情况下,表格视图的焦点是第一项。但是,默认情况下如何在表格视图中聚焦特定项目。

例如,默认情况下,我想关注表格视图的第 n行。

提前感谢您的帮助。

【问题讨论】:

    标签: objective-c uitableview tvos


    【解决方案1】:

    一般来说,要控制焦点引擎,您必须覆盖UIFocusEnvironment 提供的方法和/或相关的UITableViewDelegateUICollectionViewDelegate 方法。这与控制所选行/项目之类的东西有很大不同,因为它是一个全局系统,而不是特定于特定视图。

    在您的特定情况下,实现UITableViewDelegate 上可用的indexPathForPreferredFocusedViewInTableView(_:) 方法可能就足够了(请注意,UICollectionViewDelegate 有一个等效方法)。

    我在尝试做类似的事情时遇到的一个问题是首选焦点视图的默认链是如何工作的。最终我注意到the documentation for UIFocusEnvironment 的这一部分(所有视图和视图控制器都符合):

    默认情况下,UIView 返回自己,UIViewController 返回自己的 根视图。在可聚焦视图中返回 self 表示该视图 应该是重点。在无法聚焦的视图中返回 self 会导致 焦点引擎选择默认的首选焦点视图,通过查找 最靠近屏幕顶部的可聚焦子视图。 返回 nil 表示没有首选的焦点视图。

    在我的情况下,这意味着焦点引擎正在选择默认的首选焦点视图,并且我的 UICollectionView 的焦点相关委托方法没有像我预期的那样被调用。如果您发现这种情况,您可能需要在您的视图控制器子类上实现preferredFocusedView(在UIFocusEnvironment 协议中定义)并返回您的UITableView 实例,以便可靠地调用与焦点相关的委托方法。

    【讨论】:

      【解决方案2】:

      对于 TVML,它是属性 autoHighlight="true" (https://developer.apple.com/library/tvos/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/TVJSAttributes.html)

      虽然不适用于所有模板,但系统中似乎仍然存在一些错误。

      【讨论】:

      • 我觉得 Imad 使用的是原生而不是 TVML,所以我不确定你的回答是否相关。
      • 是的,我使用的是原生而不是 TVML。
      【解决方案3】:

      第一件事,

      1. 在视图加载期间,设置:
      override var preferredFocusEnvironments: [UIFocusEnvironment] {
              return [myTableView]
          }
      
      1. 要聚焦到特定的 IndexPath,
      func indexPathForPreferredFocusedView(in tableView: UITableView) -> IndexPath? {
              if focusAtIndexPathRow != -1 {
                  return IndexPath(item: focusAtIndexPathRow, section: 0)
              } else {
                  return IndexPath(item: 0, section: 0)
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2022-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-22
        相关资源
        最近更新 更多