我有一个UICollectionView,可以垂直滚动大约15个单元格。然后直接在这个UICollectionView下面我有一个UIButton。我可以成功聚焦UIButton,但前提是我向下滚动所有UICollectionViewCells。我想知道是否可以将焦点从第一个UICollectionViewCell转换到UIButton而不必滚动浏览所有UICollectionView的项目?
所需行为的图表:
答案 0 :(得分:0)
如果你真的想要这种行为,那么你可以在以下函数中返回按钮,
override var preferredFocusEnvironments: [UIFocusEnvironment]
然后继承以下函数,
override func shouldUpdateFocus(in context: UIFocusUpdateContext) -> Bool {
并在焦点即将转到第二个单元格并返回调用setNeedsFocusUpdate()
之前返回false,这将使系统检查首选焦点元素并将焦点移动到按钮。
真的很想知道为什么你会这样做,但它的可行性。
答案 1 :(得分:0)
您是否尝试过使用canFocusAtItem将所有其他collectionView单元格设置为false。 然后直接将焦点移到UIButton。