Ogr*_*amp 5 uikit apple-tv swift tvos
我正试图在tvOS上实现非常简单的用户界面,经过几次失败后,似乎不可能.
我有2个水平滚动的集合视图.
所有城市的选项集都相同,但某些城市可以禁用某些选项.每个城市至少有一个选项.
用户可以通过关注特定细胞来选择城市和选项.当前选择在屏幕上可见(请参阅集合视图下的标签)
我要做的是记住选定的城市/选项,所以当我更改thos集合视图之间的选项时 - 之前选择的项目变得集中(选中).这可以使用remembersLastFocusedIndexPathflag fo UICollectionView但集合视图忽略禁用的单元格.
例如,在附加项目中,都柏林禁用了选项3.因此,如果用户选择伦敦,则选择选项3,然后将焦点移回城市集合视图并将选择更改为都柏林,然后选项3将被禁用(是和返回).但是如果是真的 - 集合视图忽略所有这些并尝试集中禁用的项目.此时UI ob集合视图"破碎":isUserInteractionEnabledfalsecollectionView(_ collectionView:, canFocusItemAt indexPath:)falseremembersLastFocusedIndexPath
虽然从Apple的文档indexPathForPreferredFocusedView(in:)中看UICollectionView不出来,但是有一种方法,但它只针对首选触发一次.
有没有办法为聚焦细胞编写"自定义"逻辑?我需要为选项集合视图实现的是选择当前选择的选项(如果可用)或第一个可用选项(如果当前选择的选项在每次获得焦点时被禁用).子类化UICollectionView不应该是解决这个问题的方法,因为它不应该知道数据模型.
在这里,您可以下载测试项目
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |