当前位置:  开发笔记 > 编程语言 > 正文

UICollectionView的自定义焦点引擎行为

如何解决《UICollectionView的自定义焦点引擎行为》经验,为你挑选了0个好方法。

我使用标准UICollectionView的部分.我的细胞像网格一样布局.如果用户使用Apple TV遥控器移动焦点,则所选方向上的下一个单元格会正确聚焦.但是如果网格中存在"间隙",则默认焦点引擎跳过部分.这样做是为了聚焦一个可能在几个部分之外但在同一列中的细胞.

简单示例:共有3个部分.第一部分有3个单元格.第二个有2个单元,最后一个有3个单元.见下图:

在此输入图像描述

如果绿色单元格被聚焦并且用户触摸向下方向,则黄色单元格被聚焦并且聚焦引擎跳过第二部分.

我想强迫它没有任何部分可以跳过.因此,我不想聚焦黄色细胞而是聚焦蓝色细胞.

我了解到Apple TV Focus引擎内部的工作方式类似于网格系统,所描述的行为是默认行为.为了允许其他运动(例如对角线),我们需要通过放置隐形UIFocusGuides 来帮助聚焦引擎, 这可以将聚焦引擎重定向到preferredFocusedView.

因此,在下面的图像中,有一个不可见的红色焦点指南放置在一个UICollectionView部分的空白区域中,该部分将向下焦点重定向到所需的蓝色单元格.我认为这将是理论上的完美解决方案.

在此输入图像描述

但是我如何将UIFocusGuides 添加到UICollectionView部分的所有空白区域?我尝试了几件事,但没有任何效果.也许将它添加为装饰器视图,但这似乎是错误的.或者作为附加单元格,但是会破坏数据层并且约束锚点不起作用.

有没有人知道如何添加UIFocusGuides UICollectionView

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有