我正在构建一个像照片这样的应用程序,您可以在其中滚动浏览照片的缩略图UICollectionView
您可以点击其中一张以全屏查看该照片,然后滑动以在照片之间移动。我正在努力添加对键盘导航的支持,以便您可以使用箭头键选择照片,点击空格键全屏查看,使用箭头键在全屏照片之间移动,然后点击空格键将其关闭。这在照片应用程序中效果很好,但是在我的应用程序中,当您关闭全屏视图控制器时,基础视图控制器中的焦点不会更新到您刚刚关闭的照片的索引路径 - 它显然只知道索引最后一次聚焦在该视图控制器中的路径,即在按下空格之前聚焦的路径。当全屏视图控制器被解除时,我似乎需要手动将焦点移动到可能不同的索引路径。你如何做到这一点?
为了启用焦点,我将这些设置在UICollectionViewController
:
collectionView.allowsFocus = true
collectionView.allowsFocusDuringEditing = true
collectionView.remembersLastFocusedIndexPath = true
restoresFocusAfterTransition = true
我已经尝试了以下方法,但即使我设置了remembersLastFocusedIndexPath
和,焦点也没有移动restoresFocusAfterTransition
到该单元格false
:
cell.focusGroupPriority = .currentlyFocused
cell.setNeedsFocusUpdate()
cell.updateFocusIfNeeded()
cell.becomeFirstResponder()