gpt4 book ai didi

ios - 允许在 UISearchController 处于事件状态时选择单元格

转载 作者:行者123 更新时间:2023-11-28 07:39:40 25 4
gpt4 key购买 nike

我有一个 UICollectionViewController,在父 UINavigationController 的导航栏中嵌入了一个 UISearchController。我使用的单元格是 UICollectionViewCell 的自定义子类,包含单个 UIImageView

但是,在搜索时,我无法选择通过搜索找到的单元格。当搜索 Controller 未处于事件状态时,选择/点击单元格非常有效,我已经尝试过 this没有成功的回答。

这是我的搜索设置代码:

searchController.searchResultsUpdater = self
searchController.definesPresentationContext = true
searchController.searchBar.keyboardAppearance = .default
searchController.obscuresBackgroundDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false

navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false

对于解决此问题的任何帮助,我将不胜感激 :)

最佳答案

在使用 UICollectionView 一段时间后弄明白了。

我重写了 touchesBegan,如下所示:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard !searchController.isActive else { return }
super.touchesBegan(touches, with: event)
UIView.animate(withDuration: 0.1) { () -> Void in
let shrinkTransform = CGAffineTransform.init(scaleX: 0.9, y: 0.9)
self.transform = shrinkTransform
}
}

问题是我在调用 super.touchesBegan 之前检查搜索 Controller 是否处于事件状态,只要搜索 Controller 处于事件状态,它就会阻止触摸。

将 guard 语句直接移动到 super.touchesBegan 调用下方解决了我的问题。

希望这对碰巧遇到类似问题的其他人有所帮助!

关于ios - 允许在 UISearchController 处于事件状态时选择单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com