Swift 实现延迟搜索
当我们在做一个搜索功能时,为了给用户一个更好的体验需要用到延迟搜索。
通常做法
设定一个延迟时间 1.0秒(根据需求调整),如果输入的连续时间间隔小于 1.0秒就不执行搜索方法,直到大于 1.0秒。
在 iOS 下我们可以使用 perform 方法来实现,以 Swift 为例。
创建一个延迟执行请求:
1 2 3 4 5 6 7
/// 延迟方法 /// /// - Parameters: /// - aSelector: 执行延迟搜索的方法 /// - anArgument: 搜索参数 /// - delay: 设定一个延迟时间(1.0秒) open func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
当输入的连续时间间隔小于设定的时间 (1.0秒),取消历史创建的延迟请求:
1 2 3 4
/// 取消先前使用 perform(_:with:afterDelay:) 实例方法注册的延迟执行请求。 /// /// - Parameter aTarget: 先前使用 perform(_:with:afterDelay:) 实例方法注册的请求的目标。 open class func cancelPreviousPerformRequests(withTarget aTarget: Any)
Demo 下载地址:LPDelayedSearch。
结语
一个很简单的 Demo,就此完成。
本文由作者按照 CC BY 4.0 进行授权