欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS 使用UITextField自定義搜索框 實現(xiàn)用戶輸入完之后“實時搜索”功能

 更新時間:2020年03月19日 20:56:05   作者:瓜皮青年阿剛  
這篇文章主要介紹了iOS 使用UITextField自定義搜索框 實現(xiàn)用戶輸入完之后“實時搜索”功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

注:CSDN的代碼塊有點撈,如果瀏覽器窗口較窄,一行代碼占了兩行的位置,后面的代碼就看不到了,大家可以把瀏覽器窗口拉大一點

UI小姐姐設(shè)計的搜索框經(jīng)常是五花八門,系統(tǒng)的搜索框經(jīng)常不能滿足我們的需求,需要我們特別定制一個。但是UITextField的諸多回調(diào)里面,沒有一個是適合觸發(fā)搜索時間的。
UITextFieldTextDidChangeNotification調(diào)用過于頻繁,每輸入一個字符就調(diào)一次接口怕是不太合適。
UITextFieldTextDidEndEditingNotification只有在結(jié)束編輯的時候才會調(diào)一次,結(jié)束編輯就意味著鍵盤消失了,也不太合適。
這樣就難倒我們了嗎,當然不是,辦法還是有滴。

解決方案

先自定義一個搜索框 改好樣式,然后監(jiān)聽UITextFieldTextDidChangeNotification

- (void)textFieldDidChange{
 if (self.searchDelegate && [self.searchDelegate respondsToSelector:@selector(customSearchBar:textDidChange:)]) {
 [self.searchDelegate customSearchBar:self textDidChange:self.text];
 }
}

使用

@property (nonatomic, strong) LGCustomSearchBar *searchBar;
@property (nonatomic, assign) NSInteger inputCount; 記錄輸入次數(shù)

- (void)viewDidLoad {
 [super viewDidLoad];
 self.searchBar = [[LGCustomSearchBar alloc] initWithFrame:CGRectMake(20, 10, kScreenWidth-40, 36)];
 self.searchBar.searchDelegate = self;
 [self.view addSubview:self.searchBar];
}
- (void)customSearchBar:(LGCustomSearchBar *)searchBar textDidChange:(NSString *)searchText{
 if (searchText.length == 0) {
 [self searchKeyword:@(self.inputCount)];
 }
 else{
 self.inputCount++;
 [self performSelector:@selector(searchKeyword:) withObject:@(self.inputCount) afterDelay:1.5f];
 }
}
- (void)searchKeyword:(NSNumber *)inputCount{
	// 判斷不等于0是為了防止用戶輸入完直接點擊搜索,延時結(jié)束之后又搜索一次
 if (inputCount.integerValue == self.inputCount && self.inputCount != 0) {
 [self loadData];
 }
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
 [self loadData];
 return NO;
}
- (void)loadData{
 self.inputCount = 0;
	// 本地查詢 或者 請求數(shù)據(jù)
	...
 [self.tableView reloadData];
}

核心代碼

延遲1.5秒以后執(zhí)行搜索,判讀如果1.5秒之后傳入的輸入次數(shù)和現(xiàn)在的輸入次數(shù)一致,說明用戶1.5秒已經(jīng)沒有輸入新內(nèi)容了,加在新數(shù)據(jù)。這個時間可以自己調(diào)整

[self performSelector:@selector(searchKeyword:) withObject:@(self.inputCount) 
afterDelay:1.5f];

總結(jié)

到此這篇關(guān)于iOS 使用UITextField自定義搜索框 實現(xiàn)用戶輸入完之后“實時搜索”功能的文章就介紹到這了,更多相關(guān)ios UITextField自定義搜索框 實時搜索內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • iOS的CoreAnimation開發(fā)框架中的Layer層動畫制作解析

    iOS的CoreAnimation開發(fā)框架中的Layer層動畫制作解析

    在iOS中UIView層的屬性會映射到CoreAnimation框架的CALayer,這里我們來看一下iOS的CoreAnimation開發(fā)框架中的Layer層動畫制作解析,需要的朋友可以參考下
    2016-07-07
  • 3分鐘實現(xiàn)iOS語言本地化/國際化(圖文教程)

    3分鐘實現(xiàn)iOS語言本地化/國際化(圖文教程)

    這篇文章主要介紹了3分鐘實現(xiàn)iOS語言本地化/國際化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • iOS模塊化開發(fā)淺析

    iOS模塊化開發(fā)淺析

    本文給大家分析了IOS在模塊發(fā)開發(fā)時候的相關(guān)注意點以及簡單代碼做了分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-04-04
  • Xcode清理緩存和垃圾文件的教程

    Xcode清理緩存和垃圾文件的教程

    下面小編就為大家分享一篇Xcode清理緩存和垃圾文件的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • iOS App引導(dǎo)頁開發(fā)教程

    iOS App引導(dǎo)頁開發(fā)教程

    這篇文章主要為大家詳細介紹了iOS App引導(dǎo)頁開發(fā)教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • IOS 創(chuàng)建彩色二維碼實例詳解

    IOS 創(chuàng)建彩色二維碼實例詳解

    這篇文章主要介紹了IOS 創(chuàng)建彩色二維碼實例詳解的相關(guān)資料,這里提供實例代碼,需要的朋友可以參考下
    2016-12-12
  • iOS中UILabel設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示

    iOS中UILabel設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示

    這篇文章主要給大家介紹了關(guān)于iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 詳解iOS獲取通訊錄的4種方式

    詳解iOS獲取通訊錄的4種方式

    這篇文章主要為大家詳細介紹了iOS獲取通訊錄的4種方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • IOS多線程開發(fā)之線程的狀態(tài)

    IOS多線程開發(fā)之線程的狀態(tài)

    這篇文章主要介紹了IOS多線程開發(fā)之線程的狀態(tài) 的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • iOS 中使用tableView實現(xiàn)右滑顯示選擇功能

    iOS 中使用tableView實現(xiàn)右滑顯示選擇功能

    這篇文章主要介紹了iOS 中使用tableView實現(xiàn)右滑顯示選擇功能的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07

最新評論