8

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

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

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

override var preferredFocusedView: UIView? {
    return aView
}

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

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

非常感谢!

4

2 回答 2

21

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

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

反过来,innerCV 的细胞现在是可聚焦的,而不是 outerCV 的细胞。

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

示例项目:Apple tvOS UIKitCatalog

于 2015-10-09T20:44:22.440 回答
1

我使用了不同的方法..

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

希望能帮助到你 :)

图片

于 2016-12-06T06:08:20.423 回答