无法将 UICollectionViewCell 集中在 UITableViewCell 中

Can't focus UICollectionViewCell inside UITableViewCell

所以我正在探索新的 tvOS。因为我想复制应用商店的水平功能部分(例如 "Best New Apps")

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

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

override var preferredFocusedView: UIView? {
    return aView
}

所以在我的控制器中使用它很难获得正确的子视图。

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

非常感谢!

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

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

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

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

Sample Project: Apple tvOS UIKitCatalog

我使用了不同的方法..

在情节提要中将表视图 selection 属性 设置为 No Selection 会使焦点引擎关注 UICollectionViewCell 单元格而不是 UITableViewCell。

希望对您有所帮助:)

Image