无法在 UITableViewCell 中聚焦 UICollectionViewCell
Posted
技术标签:
【中文标题】无法在 UITableViewCell 中聚焦 UICollectionViewCell【英文标题】:Can't focus UICollectionViewCell inside UITableViewCell 【发布时间】:2015-10-08 15:26:51 【问题描述】:所以我正在探索新的 tvOS。因为我想复制应用商店的水平功能部分(例如“最佳新应用”)
我的计划是使用 UITableView 来布置基本结构(行)并为所有单独的水平滚动项使用 UICollectionView。
不幸的是,tvOS 总是关注 UITableViewCell,而不是里面的 UICollectionViewCell。我已经阅读了
override var preferredFocusedView: UIView?
return aView
所以在我的控制器中使用它对于获得正确的子视图有点困难。
有什么我可以研究的吗,或者有人可以指出我正确的方向吗?遍历所有子视图直到我得到正确的子视图似乎是个坏主意。
非常感谢!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于无法在 UITableViewCell 中聚焦 UICollectionViewCell的主要内容,如果未能解决你的问题,请参考以下文章
如何在其中使用UIStackView自定义UITableViewCell的大小
无法在 UITableViewCell 中禁用 UIButton
无法在 UITableViewCell 的 drawRect 中绘制