Swift实现延迟搜索

场景

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

通常做法

设定一个延迟时间(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比较简单,如果大家有什么问题或者有更好的实现方式,欢迎随时交流。😊😊😊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,420评论 25 708
  • 本章内容 理解window对象--BOM 的核心 控制窗口,框架和弹出窗口 利用location对象中的页面信息 ...
    闷油瓶小张阅读 491评论 0 0
  • 讲道理和女神认识已经一年多了 一直以朋友的身份相处 但是我的朋友都知道我很喜欢女神 女神172,不到100斤,长得...
    音之社交平台阅读 428评论 0 0
  • 我要毕业了,要找工作了。我总是觉得自己不应该是这样的,怎么形容呐,韩寒的《乘风破浪》里有句话,“总觉得前面有什么在...
    一指流砂窥见余生阅读 122评论 0 2