无法将UICollectionViewCell集中在UITableViewCell中

时间:2015-10-08 15:26:52

标签: swift uitableview uicollectionview tvos apple-tv

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

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

不幸的是,tvOS始终关注UITableViewCell,而不是内部的UICollectionViewCell。我已经读过关于

的内容了
override var preferredFocusedView: UIView? {
    return aView
}

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

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

非常感谢!

2 个答案:

答案 0 :(得分:17)

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

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

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

归功于Apple。我用他们的示例项目作为入门指南。查看项目中的焦点样本。

https://code.djangoproject.com/ticket/10929

答案 1 :(得分:1)

我使用了不同的方法..

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

希望有所帮助:)

Image