焦点引擎无法处理集合视图单元格

时间:2015-10-19 14:33:32

标签: swift tvos

刚开始使用tvOS,我无法让焦点引擎在我的集合视图上运行。焦点几乎适用于所有其他UI元素,如按钮和表视图,但不适用于集合视图。

我已尝试覆盖委托canFocusItemAtIndexPath并将单元格设置为cell.camBecomeFocused(),但没有一个正在运行。

谢谢你们

2 个答案:

答案 0 :(得分:1)

您应该查看 preferredFocusedView 方法。

https://developer.apple.com/library/prerelease/tvos/documentation/UIKit/Reference/UIFocusEnvironment_Protocol/index.html#//apple_ref/occ/intfp/UIFocusEnvironment/preferredFocusedView

您可以将其添加到“集合视图单元格”中,以指定在单元格聚焦时应该获得焦点的子视图。例如:

- (UIView *)preferredFocusedView
{
    // In this case, there would be a UITextField hooked up as _myTextField_
    return self.myTextField;
}

现在,当聚焦视图单元格被聚焦时,在此示例中,文本字段将获得焦点。

答案 1 :(得分:0)

我有同样的问题,我在重新加载时无法关注UICollectionView。该解决方案解决了我的问题 正如Apple工程师所说,默认情况下UICollectionViewCells没有任何焦点,但你的imageView可以设置adjustsImageWhenAncestorFocused为YES会在collectionViewCell中显示焦点。

这是代码。

cell.imageView.adjustsImageWhenAncestorFocused  = true

另请参阅此链接。https://forums.developer.apple.com/message/56262#56262