我有一个UITableViewCell
的列表,每个UICollectionView
的{{1}}的X值为UICollectionViewCell
s(为了更清晰,请参见下图)
这背后的想法是能够实现顶部带有标题的部分和水平滚动UICollectionView
除非我尝试关注UICollectionViewCell
s(又名:CategoryCell
),否则一切都很有效。 UITableViewCell
会得到关注并突出显示所有内容,因此无法关注UICollectionViewCell
中的任何内容。
根据其他帖子,此修复程序将停用用户互动和/或在UITableViewCell
上将选择样式设置为无:
cell.selectionStyle = UITableViewCellSelectionStyle.None
并在UICollectionViewCell
上启用用户互动。
以下是谈论它的帖子:
UITableViewCell with UITextField losing the ability to select UITableView row?
How can I disable the UITableView selection highlighting?
我试图在没有成功的情况下实施这些解决方案。
我错过了哪一步?该修复程序不适用于tvOS吗?如何关注位于UICollectionViewCell
的{{1}}中的UICollectionView
?
图片显示我的UITableViewController及其所有内容来自我的StoryBoard。
答案 0 :(得分:6)
问题很可能是您的表格视图单元格正在返回true
到canBecomeFocused
。您可以通过实施UITableViewDelegate
方法tableView(_, canFocusRowAt:)
返回false
,或通过继承UITableViewCell
并从false
返回canBecomeFocused
来禁用此功能。< / p>
焦点引擎会尝试关注从true
返回canBecomeFocused
的最顶层视图,这就是为什么它无法找到您的集合视图单元格:它们被“隐藏”在内部可聚焦的表格视图单元格。如果禁用焦点在表格视图单元格上,则焦点引擎将能够找到您的集合视图单元格。
override func tableView(tableView: UITableView, canFocusRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return false
}