【问题标题】:Can't focus UICollectionViewCell inside UITableViewCell无法在 UITableViewCell 中聚焦 UICollectionViewCell
【发布时间】:2015-10-08 15:26:51
【问题描述】:

所以我正在探索新的 tvOS。因为我想复制应用商店的水平功能部分(例如“最佳新应用”)

我的计划是使用 UITableView 来布置基本结构(行)并为所有单独的水平滚动项使用 UICollectionView。

不幸的是,tvOS 总是关注 UITableViewCell,而不是里面的 UICollectionViewCell。我已经阅读了

override var preferredFocusedView: UIView? {
    return aView
}

所以在我的控制器中使用它对于获得正确的子视图有点困难。

有什么我可以研究的吗,或者有人可以指出我正确的方向吗?遍历所有子视图直到我得到正确的子视图似乎是个坏主意。

非常感谢!

【问题讨论】:

    标签: swift uitableview uicollectionview tvos apple-tv


    【解决方案1】:

    我尝试了类似的情况,我在 CollectionView 中有一个 CollectionView 以获得您描述的设置。我们称它们为innerCV 和outerCV。为了让 innerCV 成为焦点而不是 outerCV 的单元格,我将此委托方法设置为为 outerCV 返回 false。

    - (BOOL)collectionView:(UICollectionView *)collectionView canFocusItemAtIndexPath:(NSIndexPath *)indexPath {
        return NO;
    }
    

    反过来,innerCV 的单元格现在可以聚焦,而不是 outerCV 的单元格。

    这要归功于 Apple。我使用他们的示例项目作为开始的指南。查看他们项目中的 Focus 示例。

    Sample Project: Apple tvOS UIKitCatalog

    【讨论】:

    • 嗨,理查德,非常感谢您的帮助。我已经尝试过了,不幸的是这对我的设置不起作用,这真的让我觉得我可能在那里搞砸了。我想我只是要再次设置一个基础项目并对其进行测试。
    • 感谢 Richard,Apple 在示例项目中解决了这个问题。
    • @jpincheira 那么解决方法是什么?
    • @JeremyHicks 这不是一个修复程序,我的意思是 Apple 在他们的示例项目中展示了他们的实现。查看链接。
    • 救命!谢谢!
    【解决方案2】:

    我使用了不同的方法..

    在 storyboard 中将 tableview selection 属性设置为 No Selection 会使焦点引擎专注于 UICollectionViewCell 单元格而不是 UITableViewCell。

    希望对你有帮助:)

    Image

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 2017-02-20
      • 2011-11-01
      • 2017-08-07
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多