日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

iOS中 UISearchController 搜索欄 UI技術分享

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

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; } }

終究效果:






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美日本免费 | 一级黄色av | 视频在线日韩 | 亚洲免费视频一区二区 | 欧美黄色性视频 | 高清一二三区 | 欧美日韩一区二区三区 | 欧美日韩在线播放 | 中文字幕一区二区三区在线观看 | 亚洲天堂网站 | 久草成人在线 | 久久久99国产精品免费 | 午夜精品影院 | 久久国产一区二区三区 | 国产成人99久久亚洲综合精品 | 久久xxx| 国产精品毛片一区二区在线看 | av大片在线观看 | 午夜第一页 | www.国产高清 | jav成人av免费播放 | 欧美日韩亚洲国产综合 | 国产高潮在线观看 | 久久一二 | 操操片 | 一级在线| 成年人在线看片 | 欧洲av一区二区 | 成人在线视频网站 | 九九九九九国产 | 国产精品一区二区三区在线播放 | 国产精品18hdxxxⅹ在线 | 蜜月久综合久久综合国产 | 91在线精品一区二区 | 嫩草影院一二三 | 成人午夜免费视频 | av一区在线观看 | 91精品入口 | 国产精品日韩欧美一区二区三区 | 成人国产精品视频 | 午夜神马福利视频 |