无法在 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的主要内容,如果未能解决你的问题,请参考以下文章

tvOS 上 UITableViewCell 的自定义背景

如何在其中使用UIStackView自定义UITableViewCell的大小

无法在 UITableViewCell 中禁用 UIButton

无法在 UITableViewCell 的 drawRect 中绘制

在 UITableViewCell 中无法点击 UIButton

在 UITableViewCell 中使用渐变背景 [重复]