Swift实现延迟搜索

2017-05-03  本文已影响107人  liam_7

场景

当我们在做一个搜索功能时,为了给用户一个更好的体验。

通常做法

设定一个延迟时间(1.0秒),如果输入的连续时间间隔小于1.0秒就不执行搜索方法,直到大于1.0秒。

在iOS下我们可以使用perform方法来实现,以swift为例:

1.创建一个延迟执行请求

/// 延迟方法
///
/// - Parameters:
///   - aSelector: 执行延迟搜索的方法
///   - anArgument: 搜索参数
///   - delay: 设定一个延迟时间(1.0秒)
open func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)

2.当输入的连续时间间隔小于设定的时间(1.0秒),取消历史创建的延迟请求。

/// 取消先前使用perform(_:with:afterDelay:)实例方法注册的延迟执行请求。
/// 
/// - Parameter aTarget: 先前使用perform(_:with:afterDelay:)实例方法注册的请求的目标。
open class func cancelPreviousPerformRequests(withTarget aTarget: Any)

Demo下载地址:LPDelayedSearch

结语

这个demo比较简单,如果大家有什么问题或者有更好的实现方式,欢迎随时交流。😊😊😊

上一篇下一篇

猜你喜欢

热点阅读