Swift實現(xiàn)延遲搜索

場景

當我們在做一個搜索功能時,為了給用戶一個更好的體驗。

通常做法

設(shè)定一個延遲時間(1.0秒),如果輸入的連續(xù)時間間隔小于1.0秒就不執(zhí)行搜索方法,直到大于1.0秒。

在iOS下我們可以使用perform方法來實現(xiàn),以swift為例:

1.創(chuàng)建一個延遲執(zhí)行請求

/// 延遲方法
///
/// - Parameters:
///   - aSelector: 執(zhí)行延遲搜索的方法
///   - anArgument: 搜索參數(shù)
///   - delay: 設(shè)定一個延遲時間(1.0秒)
open func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)

2.當輸入的連續(xù)時間間隔小于設(shè)定的時間(1.0秒),取消歷史創(chuàng)建的延遲請求。

/// 取消先前使用perform(_:with:afterDelay:)實例方法注冊的延遲執(zhí)行請求。
/// 
/// - Parameter aTarget: 先前使用perform(_:with:afterDelay:)實例方法注冊的請求的目標。
open class func cancelPreviousPerformRequests(withTarget aTarget: Any)

Demo下載地址:LPDelayedSearch

結(jié)語

這個demo比較簡單,如果大家有什么問題或者有更好的實現(xiàn)方式,歡迎隨時交流。??????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評論 25 709
  • 本章內(nèi)容 理解window對象--BOM 的核心 控制窗口,框架和彈出窗口 利用location對象中的頁面信息 ...
    悶油瓶小張閱讀 529評論 0 0
  • 講道理和女神認識已經(jīng)一年多了 一直以朋友的身份相處 但是我的朋友都知道我很喜歡女神 女神172,不到100斤,長得...
    音之社交平臺閱讀 474評論 0 0
  • 我要畢業(yè)了,要找工作了。我總是覺得自己不應(yīng)該是這樣的,怎么形容吶,韓寒的《乘風破浪》里有句話,“總覺得前面有什么在...
    一指流砂窺見余生閱讀 150評論 0 2

友情鏈接更多精彩內(nèi)容