多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > iOS中 UISearchController 搜索欄 UI技術分享

iOS中 UISearchController 搜索欄 UI技術分享

來源:程序員人生   發布時間:2016-03-21 08:26:47 閱讀次數:2950次

UISearchController 繼承自UIViewController

    // 在iOS 8.0以上版本中, 我們可使用UISearchController來非常方便地在UITableView中添加搜索框. 而在之前版本中, 我們還是必須使用UISearchBar + UISearchDisplayController的組合方式.


#import "SearchViewController.h" #define kTableCell @"tablecell" @interface SearchViewController ()@property(nonatomic,retain)NSMutableArray *items; @property(nonatomic,retain)UISearchController *searchController; @property(nonatomic,retain)NSMutableArray *searchResults;//接收數據源結果 @end

懶加載及釋放

@implementation SearchViewController - (instancetype)init { self = [super init]; if (self) { } return self; } //懶加載 - (NSMutableArray *)items{ if (!_items) { self.items = [NSMutableArray arrayWithCapacity:0]; } return [[_items retain]autorelease]; } //懶加載 - (NSMutableArray *)searchResults{ if (!_searchResults) { self.searchResults = [NSMutableArray arrayWithCapacity:0]; } return [[_searchResults retain]autorelease]; } //釋放 - (void)dealloc { self.items = nil; self.searchResults = nil; self.searchController = nil; [super dealloc]; }

調用:


- (void)viewDidLoad { [super viewDidLoad]; //導航欄 [self p_navigationController]; //調用初始化searchController [self setSearchControllerView]; //注冊 [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kTableCell]; }


初始化SearchController初始化


- (void)setSearchControllerView{ self.searchController = [[UISearchController alloc]initWithSearchResultsController:nil]; self.searchController.searchBar.frame = CGRectMake(0, 0, 0, 44); self.searchController.dimsBackgroundDuringPresentation = false; //搜索欄表頭視圖 self.tableView.tableHeaderView = self.searchController.searchBar; [self.searchController.searchBar sizeToFit]; //背景色彩 self.searchController.searchBar.backgroundColor = [UIColor orangeColor]; self.searchController.searchResultsUpdater = self; }


//引入UISearchController以后, UITableView的內容也要做相應地變動: 即cell中要顯現的內容是items, 還是searchResults.這1點, 可以通過UISearchController的active屬性來判斷, 即判斷輸入框是不是處于active狀態.

//UITableView相干的很多方法都要根據active來做判斷:


配置導航條


- (void)p_navigationController{ self.title = @"小韓哥-英雄列表"; self.items = @[@"國服第1臭豆腐 No.1 Stinky Tofu CN.", @"比爾吉沃特(Bill Ji walter)", @"瓦洛蘭 Valoran", @"祖安 Zaun", @"德瑪西亞 Demacia", @"諾克薩斯 Noxus", @"艾歐尼亞 Ionia", @"皮爾特沃夫 Piltover", @"弗雷爾卓德 Freijord", @"班德爾城 Bandle City", @"無畏先鋒", @"戰爭學院 The Institute of War", @"巨神峰", @"雷瑟守備(JustThunder)", @"判決之地(JustRule)", @"黑色玫瑰(Black Rose)", @"陰影島(Shadow island)", @"鋼鐵烈陽(Steel fierce)", @"恕瑞瑪沙漠 Shurima Desert", @"均衡教派(Balanced sect)", @"水晶之痕(Crystal Scar)", @"影流(Shadow Flow )", @"守望之海(The Watchtower of sea)", @"皮爾特沃夫", @"征服之海", @"扭曲叢林 Twisted Treeline", @"教育網專區", @"試煉之地 Proving Grounds", @"卡拉曼達 Kalamanda", @"藍焰島 Blue Flame Island", @"哀嚎沼澤 Howling Marsh", @"艾卡西亞 Icathia", @"鐵脊山脈 Ironspike Mountains", @"庫莽古叢林 Kumungu", @"洛克法 Lokfar", @"摩根小道 Morgon Pass", @"塔爾貢山脈 Mountain Targon", @"瘟疫叢林 Plague Jungles", @"盤蛇河 Serpentine River", @"厄爾提斯坦 Urtistan", @"巫毒之地 Voodoo Lands", @"咆哮深淵 Howling Abyss", @"熔巖洞窟 Magma Chambers", @"召喚師峽谷 Summoners Rift", @"9尾妖狐: 阿貍(Ahri)", @"陰影之拳:阿卡麗(Akali)", @"牛頭酋長:阿利斯塔(Alistar)", @"殤之木乃伊:阿木木(Amumu)", @"冰晶鳳凰:艾尼維亞(Anivia)", @"黑暗之女:安妮(Annie)", @"寒冰射手:艾希(Ashe)", @"蒸汽機器人:布里茨(Blitzcrank)", @"復仇焰魂:布蘭德(Brand)", @"皮城女警:凱特琳(Caitlyn)", @"魔蛇之擁:卡西奧佩婭(Cassiopeia)", @"虛空恐懼:科’加斯(ChoGath)", @"勇敢投彈手:庫奇(Corki)", @"諾克薩斯之手:德萊厄斯(Darius)", @"皎月女神:黛安娜:(Diana)", @"祖安狂人:蒙多醫生(DrMundo)", @"光榮行刑官:德萊文(Delevin)", @"蜘蛛女皇:伊莉斯(Elise)", @"寡婦制造者:伊芙琳(Evelynn)", @"探險家:伊澤瑞爾(Ezreal)", @"末日使者:費德提克(Fiddlesticks)", @"無雙劍姬:劍姬(Fiora)", @"潮汐海靈:菲茲(Fizz)", @"哨兵之殤:加里奧(Galio)", @"海洋之災:普朗克(Gangplank)", @"德瑪西亞之力:蓋倫(Garen)", @"酒桶:古拉加斯(Gragas)", @"法外狂徒:格雷福斯(Graves)", @"戰爭之影:赫卡里姆 (Hecarim)", @"大發明家:黑默丁格(Heimerdinger)", @"刀鋒意志:伊瑞利亞(Irelia)", @"風暴之怒:迦娜(Janna)", @"德瑪西亞皇子:嘉文4世(JarvanⅣ)", @"武器大師:賈克斯(Jax)", @"未來守護者:杰斯(Jayce)", @"天啟者:卡爾瑪(Karma)", @"死亡頌唱者:卡爾薩斯(Karthus)", @"虛空行者:卡薩丁(Kassadin)", @"不詳之刃:卡特琳娜(Katarina)", @"審判天使:凱爾(Kayle)", @"狂暴之心:凱南(Kennen)", @"虛空掠奪者:卡’茲克(Khazix)", @"深淵巨口:克格’莫(Kog Maw)", @"詭術妖姬:樂芙蘭(LeBlanc)", @"盲僧:李青(Lee sin)", @"曙光女神:蕾歐娜(Leona)", @"仙靈女巫:璐璐(lulu)", @"光輝女郎:拉克絲(Lux)", @"熔巖巨獸:墨菲特(Malphite)", @"虛空先知:瑪爾扎哈(Malzahar)", @"扭曲樹精:茂凱(Maokai)", @"無極劍圣:易(Yi)", @"賞金獵人:惡運小姐(MissFortune)", @"齊天大圣:孫悟空(Monkey king)", @"金屬大師:莫德凱撒(Mordekaiser)", @"墮天使:莫甘娜(Morgana)", @"喚潮鮫姬:娜美(Nami)", @"沙漠死神:內瑟斯(Nasus)", @"深海泰坦:諾提勒斯(Nautilus)", @"狂野女獵手:奈德麗(Nidalee)", @"永久夢魘:魔騰(Nocturne)", @"雪人騎士:努努(Nunu)", @"狂戰士:奧拉夫(Olaf)", @"發條魔靈:奧莉安娜(Orianna)", @"戰爭之王:潘森(Pantheon)", @"鋼鐵大使:波比(Poopy)", @"披甲龍龜:拉莫斯(Rammus)", @"荒漠屠夫:雷克頓(Renekton)", @"傲之追獵者:雷恩加爾(Rengar)", @"放逐之刃:瑞文(Rivan)", @"機械公敵:蘭博(Rumble)", @"流浪法師:瑞茲(Ryze)", @"凜冬之怒:瑟莊妮:(Sejuani)", @"惡魔小丑:薩科(Shaco)", @"暮光之眼:慎(Shen)", @"龍血武姬:希瓦娜(Shyvana)", @"煉金術士:辛吉德(Singed)", @"亡靈勇士:賽恩(Sion)", @"戰爭女神:希維爾(Sivir)", @"水晶先鋒:斯卡納(Skarner)", @"琴瑟仙女:娑娜(Sona)", @"眾星之子:索拉卡(Soraka)", @"策士統領:斯維因(Swain)", @"暗黑元首:辛德拉(Syndra)", @"刀鋒之影:泰隆(Talon)", @"寶石騎士:塔里克(Taric)", @"迅捷斥候:提莫(Teemo)", @"魂鎖典獄長:錘石(Thresh)", @"麥林炮手:崔絲塔娜(Tristana)", @"詛咒巨魔:特蘭德爾(Trundle)", @"蠻族之王:泰達米爾(Tryndamere)", @"卡牌大師:崔斯特(Twisted Fate)", @"瘟疫之源:圖奇(Twitch)", @"野獸之靈:烏迪爾(Udyr)", @"首領之傲:厄加特(Urgot)", @"懲戒之箭:韋魯斯(Varus)", @"暗夜獵手:薇恩(Vayne)", @"邪惡小法師:維伽(Veigar)", @"皮城執法官:蔚(Vi)", @"機械先驅:維克托(Viktor)", @"猩紅收割者:弗拉基米爾(Vladimir)", @"雷霆咆哮:沃利貝爾(Volibear)", @"嗜血獵手:沃里克(Warwick)", @"遠古巫靈:澤拉斯(Xerath)", @"德邦總管:趙信(XinZhao)", @"掘墓者:約里克(Yorick)", @"影流之主:劫(Zed)", @"爆破鬼才:吉格斯(Ziggs)", @"時光守護者:基蘭(Zilean)", @"荊棘之興:婕拉(Zyra)"].mutableCopy; }


#pragma mark 協議中的方法

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{ [self.searchResults removeAllObjects]; //NSPredicate 謂詞 NSPredicate *searchPredicate = [NSPredicate predicateWithFormat:@"self contains[cd] %@",searchController.searchBar.text]; self.searchResults = [[self.items filteredArrayUsingPredicate:searchPredicate]mutableCopy]; //刷新表格 [self.tableView reloadData]; }

#pragma mark - Table view data source


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return (!self.searchController.active) ? self.items.count : self.searchResults.count; }

返回cell:



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTableCell forIndexPath:indexPath]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kTableCell]; } if (indexPath.row > 0) { cell.imageView.frame = CGRectMake(60, 60, 10, 10); cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld",indexPath.row + 43]]; cell.textLabel.font = [UIFont systemFontOfSize:15]; } cell.textLabel.text = (!self.searchController.active) ? self.items[indexPath.row] : self.searchResults[indexPath.row]; return cell; }

業務代理返回高:



- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.row == 0) { return 100 ; }else{ return 80; } }

終究效果:






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人精品在线视频 | 久久性生大片免费观看性 | 在线播放性xxx欧美 在线播放亚洲美女视频网站 | 日本综合视频 | 欧美男人天堂网 | 亚洲高清成人 | 国产亚洲欧美日韩在线看片 | 亚洲精品综合一区二区三区在线 | 看大片免费网站 | 午夜影院免费看 | 国产第一页无线好源 | 国产一区二区三区免费看 | 大伊人网 | 国产精品免费麻豆入口 | 香蕉人人超 | 欧美精品18vide0sex性欧美 | 三级在线国产 | freexx性hd| 亚洲激情视频在线播放 | 高清二区 | 欧美日韩不卡码一区二区三区 | 免费在线公开视频 | 在线伊人网 | 性欧美性free | 18以下勿进色禁视频免费看 | 亚洲欧美日韩中文字幕在线一区 | 精品一区二区久久久久久久网站 | 狂野欧美性猛交xxxx乱大交 | 欧美一级淫片 | 免费xx视频 | 怡红院免费的全部视频国产a | 欧美一级毛片生活片 | 一二三四在线观看免费中文在线观看 | 在线v片| 日本欧美一区二区三区视频麻豆 | 日本在线不卡一区二区 | 国产午夜精品久久久久九九 | 国产精品久久久久久久免费大片 | 亚州精品永久观看视频 | 毛片免费观看网址 | 久久91av|