真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在iOS中使用UITextField自定義搜索框

如何在iOS中使用UITextField自定義搜索框?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的伊犁網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

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

解決方案

先自定義一個(gè)搜索框 改好樣式,然后監(jiān)聽(tīng)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是為了防止用戶(hù)輸入完直接點(diǎn)擊搜索,延時(shí)結(jié)束之后又搜索一次
 if (inputCount.integerValue == self.inputCount && self.inputCount != 0) {
 [self loadData];
 }
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
 [self loadData];
 return NO;
}
- (void)loadData{
 self.inputCount = 0;
	// 本地查詢(xún) 或者 請(qǐng)求數(shù)據(jù)
	...
 [self.tableView reloadData];
}

核心代碼

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

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

看完上述內(nèi)容,你們掌握如何在iOS中使用UITextField自定義搜索框的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享名稱(chēng):如何在iOS中使用UITextField自定義搜索框
本文網(wǎng)址:http://weahome.cn/article/gdedos.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部