【发布时间】:2021-10-22 18:59:32
【问题描述】:
我正在构建一个像照片这样的应用程序,您可以在其中滚动浏览 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()
【问题讨论】:
标签: ios uicollectionview focus ios15