所以我正在探索新的tvOS。因为我想要复制应用商店的水平功能部分(例如“最佳新应用”)
我的计划是使用UITableView来布局基本结构(行),并为所有单独的可水平滚动项使用UICollectionView。
不幸的是,tvOS始终关注UITableViewCell,而不是内部的UICollectionViewCell。我已经读过关于
的内容了override var preferredFocusedView: UIView? {
return aView
}
因此,在我的控制器中使用它对于获得正确的子视图很难。
有什么我可以研究或者有人可以指出我正确的方向吗?迭代所有子视图直到我得到正确的视图似乎是一个坏主意。
非常感谢!
答案 0 :(得分:17)
我尝试了类似的情况,我在CollectionView中有一个CollectionView来获取你描述的设置。我们称它们为innerCV和outerCV。为了使innerCV成为焦点而不是outerCV的单元格,我将此委托方法设置为为outerCV返回false。
- (BOOL)collectionView:(UICollectionView *)collectionView canFocusItemAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}
反过来,innerCV的细胞现在可以聚焦,而不是outerCV的细胞。
归功于Apple。我用他们的示例项目作为入门指南。查看项目中的焦点样本。
答案 1 :(得分:1)
我使用了不同的方法..
在storyboard中将tableview selection
属性设置为No Selection
会使焦点引擎专注于UICollectionViewCell单元而不是UITableViewCell。
希望有所帮助:)