uisearchbar的使用controller比uitextfield模糊搜索灵敏吗

iOS UISearchController的使用
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self setTabBarHidden:YES withAnimation:YES];
- (void)viewWillDisappear:(BOOL)animated{
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self setTabBarHidden:YES withAnimation:YES];
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.mySearchController.searchBar setHidden:YES];
[self setTabBarHidden:NO withAnimation:YES];
- (void)viewDidLoad {
[super viewDidLoad];
[self setExtraCellLineHidden:self.myTableViewW
[self initCellInfo];
[self initTableView];
[self initTitleBar];
[self initHeader];
[self initSearchBar];
- (void)initSearchBar{
self.mySearchController=[[UISearchController alloc]initWithSearchResultsController:nil];
self.mySearchController.searchBar.frame=CGRectMake(100, 10, 200, 44);
self.myTableViewW.tableHeaderView=self.mySearchController.searchB
[self.mySearchController.searchBar sizeToFit];
self.mySearchController.searchResultsUpdater=
self.mySearchController.dimsBackgroundDuringPresentation=NO;
self.mySearchController.hidesNavigationBarDuringPresentation=NO;
self.mySearchController.searchBar.placeholder=@"输入赤兔ID或者昵称查询";
[self presentViewController:self.mySearchController animated:YES completion:nil];
- (void)initHeader{
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self hiddenkeyBoard];
- (void)hiddenkeyBoard{
[self.myTextField resignFirstResponder];
- (void)initTitleBar{
self.title=@"添加朋友";
- (void)initCellInfo{
NSMutableArray *cellInfoArray=[[NSMutableArray alloc]init];
NSMutableArray *nickNameArray=[[NSMutableArray alloc]init];
NSMutableArray *IDArray=[[NSMutableArray alloc]init];
CellInfo_t *cellInfo=[self newCellInfo];
cellInfo.image=@"http://b./image/w%3D310/sign=a0eb5ed6d52abfdda3cc7cd98d10f00dbe2e233fb80e7aec90d0.jpg";
cellInfo.nickName=@"呱呱呱";
cellInfo.ID=@"1";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://c./image/w%3D310/sign=cb0ab62f63e/902397dda144aded2a20cf431ad853e.jpg";
cellInfo.nickName=@"任溶溶";
cellInfo.ID=@"2";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"/users/upfile/big.jpg";
cellInfo.nickName=@"小安江湖";
cellInfo.ID=@"3";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://d./image/w%3D310/sign=ebe80fb0baa1cd02fcafcc3cec3fd2c55.jpg";
cellInfo.nickName=@"路见不平";
cellInfo.ID=@"4";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
self.nickNameArray=nickNameA
self.cellInfoArray=cellInfoA
self.IDArray=IDA
- (CellInfo_t *)newCellInfo{
CellInfo_t *info=[CellInfo_t new];
- (void)initTableView{
self.myTableViewW.delegate=
self.myTableViewW.dataSource=
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.mySearchController.active){
return self.searchList.
return self.cellInfoArray.
- (CellInfo_t *)getCellInfo:(NSInteger)row{
return self.cellInfoArray[row];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 80;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CellInfo_t *cellInfo=[self getCellInfo:indexPath.row];
static NSString *cellID=@"RRAddFriendCell";
RRAddFriendCell *cell=[tableView dequeueReusableCellWithIdentifier:cellID];
if (cell==nil) {
cell=[[[NSBundle mainBundle]loadNibNamed:cellID owner:self options:nil]lastObject];
if(self.mySearchController.active){
cell.mynickName=self.searchList[indexPath.row];
PAImageView *image=[[PAImageView alloc]initWithFrame:cell.myimage.bounds backgroundProgressColor:[UIColor lightGrayColor] progressColor:nil image:nil];
[cell.myimage addSubview:image];
[image setImageURL:cellInfo.image];
cell.mynickName=cellInfo.nickN
cell.myID=cellInfo.ID;
[cell.myapplyAdd setTitle:@"申请添加" forState:UIControlStateNormal];
[cell.myapplyAdd addTarget:self action:@selector(applyAdd) forControlEvents:UIControlEventTouchUpInside];
cell.selectionStyle=UITableViewCellSelectionStyleN
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
return YES;
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{
NSString *searchString = self.mySearchController.searchBar.
NSPredicate *preicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[c] %@", searchString];//用predicateWithFormat创建一个谓词,name作为键路径
if (self.searchList!= nil) {
[self.searchList removeAllObjects];
//过滤数据
self.searchList= [NSMutableArray arrayWithArray:[self.nickNameArray filteredArrayUsingPredicate:preicate]];
[self.myTableViewW reloadData];
- (void)applyAdd{
NSLog(@"申请添加");
- (void)setExtraCellLineHidden: (UITableView *)tableView{
UIView *view =[ [UIView alloc]init];
view.backgroundColor = [UIColor clearColor];
[tableView setTableFooterView:view];
[tableView setTableHeaderView:view];
-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{
[searchBar endEditing:YES];
return YES;
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar endEditing:YES];当前位置:
& Swift - 使用UISearchController实现带搜索栏的表格
Swift - 使用UISearchController实现带搜索栏的表格
发布:hangge
浏览:2229
& & 我原来写过一篇文章“”,当时是使用UISearchDisplayController来实现带有搜索功能的列表,由于UISearchDisplayController本身就整合了搜索条和表格,所有用起来很方便。
& & 到了iOS8,苹果废除UISearchDisplayController,建议我们使用UISearchController配合UITableView来实现。我们可以把搜索条放在表格头部,或者放在页面顶部,还是很灵活的。下面通过代码演示如何使用UISearchController实现具有搜索功能的表格。
效果图如下:
代码如下:
(注:这里对ViewController做了类扩展ViewControllerExtensions.swift,把UITableView和UISearchController的代理方法都写在扩展类里,使代码更加简洁)
--- ViewController.swift ---
import UIKit
class ViewController: UIViewController {
//展示列表
var tableView: UITableView!
//搜索控制器
var countrySearchController = UISearchController()
//原始数据集
let schoolArray = ["清华大学","北京大学","中国人民大学","北京交通大学","北京工业大学",
"北京航空航天大学","北京理工大学","北京科技大学","中国政法大学","中央财经大学","华北电力大学",
"北京体育大学","上海外国语大学","复旦大学","华东师范大学","上海大学","河北工业大学"]
//搜索过滤后的结果集
var searchArray:[String] = [String](){
{self.tableView.reloadData()}
override func viewDidLoad() {
super.viewDidLoad()
//创建表视图
self.tableView = UITableView(frame: UIScreen.mainScreen().applicationFrame,
style:UITableViewStyle.Plain)
self.tableView!.delegate = self
self.tableView!.dataSource = self
//创建一个重用的单元格
self.tableView!.registerClass(UITableViewCell.self,
forCellReuseIdentifier: "MyCell")
self.view.addSubview(self.tableView!)
//配置搜索控制器
self.countrySearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.hidesNavigationBarDuringPresentation = false
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.searchBarStyle = .Minimal
controller.searchBar.sizeToFit()
self.tableView.tableHeaderView = controller.searchBar
return controller
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
self.tableView.reloadData()
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
--- ViewControllerExtensions.swift ---
import Foundation
import UIKit
extension ViewController: UITableViewDataSource
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -& Int
if (self.countrySearchController.active)
return self.searchArray.count
return self.schoolArray.count
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
-& UITableViewCell
//为了提供表格显示性能,已创建完成的单元需重复使用
let identify:String = "MyCell"
//同一形式的单元格重复使用,在声明时已注册
let cell = tableView.dequeueReusableCellWithIdentifier(identify,
forIndexPath: indexPath)
if (self.countrySearchController.active)
cell.textLabel?.text = self.searchArray[indexPath.row]
return cell
cell.textLabel?.text = self.schoolArray[indexPath.row]
return cell
extension ViewController: UITableViewDelegate
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
tableView.deselectRowAtIndexPath(indexPath, animated: true)
extension ViewController: UISearchResultsUpdating
func updateSearchResultsForSearchController(searchController: UISearchController)
self.searchArray.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@",
searchController.searchBar.text!)
let array = (self.schoolArray as NSArray)
.filteredArrayUsingPredicate(searchPredicate)
self.searchArray = array as! [String]触摸非输入区(背景)使UITextField(UISearchBar)键盘消失的方法
在iOS上出现软键盘后,希望点击非键盘部分,隐藏键盘,即使键盘消失的方法讨论。
第一种方法:增加一个button,相应touch down事件,隐藏键盘。这种方法,太山寨了。为了相应一个事件增加一个button太不值得的。
第二种方法:在背景图片上添加Tap事件,相应单击处理。这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到第一种山寨的方法行列中。
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
[super viewDidLoad];
// 添加带有处理时间的背景图片
UIImageView *backView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
backView.image = [UIImage imageNamed:@&small3.png&];
backView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTouch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)];
[backView addGestureRecognizer:singleTouch];
backView.tag = 110;
[self.view addSubview:backView];
// 添加uitextfield
text = [[UITextField alloc] initWithFrame:CGRectMake(30, 150, 250, 31)];
//[text setBackgroundColor:[UIColor grayColor]];
text.borderStyle = UITextBorderStyleRoundedR
text.placeholder = @&&;
[self.view addSubview:text];
// 添加返回按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(125, 40, 75, 35);
[button addTarget:self action:@selector(done:) forControlEvents:UIControlEventTouchUpInside];
//[button setBackgroundColor:[UIColor grayColor]];
[button setTitle:@&返回& forState:UIControlStateNormal];
[self.view addSubview:button];
-(void)dismissKeyboard:(id)sender{
[text resignFirstResponder];
第三种方法:在xib文件中,修改xib文件的objects属性,默认是view属性,我们可以修改为UIControl属性,从而是xib文件相应touch down事件。这种方法,缺点就是没有xib就悲剧了。不过按说也应该可以动态设置,目前没有找到方法,那位网友知道的话,不妨告诉我下。
设置参考这里:
把objects设置未control后,可以直接相应touch down事件
综合以上三种方法,编写了一个例子,大家可以下载看看代码
代码点击这里下载
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
在iOS上出现软键盘后,希望点击非键盘部分,隐藏键盘,即使键盘消失的方法讨论. 第一种方法:增加一个button,相应touch down事件,隐藏键盘.这种方法,太山寨了.为了相应一个事件增加一个button太不值得的. 第二种方法:在背景图片上添加Tap事件,相应单击处理.这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到 ...
这篇文章主要介绍了iOS应用开发中使UITextField实现placeholder属性的方法,示例代码为传统的Objective-C语言,需要的朋友可以参考下我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入.但是UITextView却没有placeholder属性. 一.猥琐的方法
第一种: 创建一个不可见的button,将其放在其他所有元素后面,然后在该button的触发事件中写resignFirstResponder. 具体分四步: 1.拖一个round rect button到视图窗口,调整大小使其占据整个屏幕. 2.从xcode菜单中选择send to back,使该button置于后面. 3.将该button的类型改为cust ...
创建一个基于Singal View Application 的工程 在.xib文件中拖入一个Text Field控件和一个Round Rect Button 控件 关键的一步,
回到属性面板框,,将“Custom Class&的类名UIView改为UIContro
4.新建一个函数用 ...
转自:http://leopard168./blog/static// 在iOS app中,只要用到编辑框(UITextField)的地方,就得处理键盘消失 (dismiss keyboard). 我先后用过4种方法,来处理键盘消失的问题. 1. 通过UITextFiledDelegat ...
在iOS上出现软键盘后,希望点击非键盘部分,隐藏键盘,即使键盘消失的方法讨论. 第一种方法:增加一个button,相应touch down事件,隐藏键盘.这种方法,太山寨了.为了相应一个事件增加一个button太不值得的. 第二种方法:在背景图片上添加Tap事件,相应单击处理.这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到 ...
在iOS上出现软键盘后,希望点击非键盘部分,隐藏键盘,即使键盘消失的方法讨论. 第一种方法:增加一个button,相应touch down事件,隐藏键盘.这种方法,太山寨了.为了相应一个事件增加一个button太不值得的. 第二种方法:在背景图片上添加Tap事件,相应单击处理.这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到 ...
textField被虚拟键盘挡住解决方法
经常会遇到以下情况,textField被虚拟键盘挡住的情况,解决. RootViewController.h 中: #import &UIKit/UIKit.h&@interface RootViewController : UIViewController&UITextFieldDe ...1150人阅读
UIsearchController
开发中,搜索功能使用的频率自然不言而喻, 本文主要讲一些常用的
1.先创建一个搜索框(比较简单的一个搜索框, 系统自带的)
- (void)viewDidLoad {
& & [super
viewDidLoad];
& & // Do any additional setup after loading the view, typically from a nib.
& & self.view.backgroundColor = [UIColor
whiteColor];
& & UISearchBar *myBar = [[UISearchBar
& & myBar.frame =
CGRectMake(0 ,
65, self.view.frame.size.width,
& & [self.view
addSubview:myBar];
显示cancel
& & myBar.showsCancelButton =
看一下效果:
但是系统的搜索框并不是很美观,可以用图片设计,IOS7之前可以用
myBar.backgroundImage=[UIImage resizedImage:@&searchbar_background&];
但是在IOS7之后看不出效果,我们可以给UIimage条件延展,
&@implementation UIImage (Extension) // 根据图片名自动加载适配IOS6和iOS7的图片& &
+ (UIImage *)imageWithName:(NSString *)name& &
{& & & & & & UIImage *image = nil;& & & & & & if (iOS7) { // 处理iOS7的情况& & & & & &
& & & & NSString *newName = [name stringByAppendingString:@&_os7&];& & & & & &
& & & & image = [UIImage imageNamed:newName];& & & & & &
& & }& & & & & & & &
& & if (image == nil) {& & & & & &
& & & & image = [UIImage imageNamed:name];& & & & & &
& & }& & & &
& & return& & & &
// 根据图片名返回一张能自由拉伸的图片& &
+ (UIImage *)resizedImage:(NSString *)name& &
& & UIImage *image = [UIImage imageWithName:name];& & & &
& & return [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];& & & &
}如果还是不满意的话就只有自己定义一个搜索栏了, 关于自己封装搜索框,这里就不作说明了下面说一下UISearchController,在IOS8之前都是用UISearchDisplayController, 但是IOS8之后就用UISearchController, UISearchController用起来很方便, 它本身就带有searchBar, 而且自动会模态推到导航栏,下面看一下具体的使用,用UIsearchController实现一个搜索功能由于这个实现功能是点击一个searchbar 之后触发另一个方法A, 方法A实现的创建UIsearchController, 因此,大家可以根据实际情况操作首先在.h里@interface SearchViewController : UIViewController&UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate&// searchCollectionView@property (nonatomic, retain) UICollectionView *searchCollectionV// mySearchController@property (nonatomic, retain) UISearchController *mySearchC// 搜索按钮@property (nonatomic, retain) UIButton *searchB// 存放所有数据的数组@property (nonatomic, retain) NSMutableArray *allDataA// 存放搜索出结果的数组@property (nonatomic, retain) NSMutableArray *searchResultDataA// 搜索控制器@property (nonatomic, retain) UISearchController *searchC// 搜索使用的表示图控制器@property (nonatomic, retain) UITableViewController *searchTVC;// searchBar@property (nonatomic, retain) UISearchBar *// 搜索框输入的东西@property (nonatomic, copy) NSString *inputT接下来.m里1. 创建一个searchBar(其实这个searchBar没有说明大用处)- (void)viewDidLoad {& & [super viewDidLoad];& & // Do any additional setup after loading the view.&& & self.view.backgroundColor = [UIColor brownColor];& & // 创建searchBar& & self.bar=[[UISearchBar alloc]init];& & self.navigationItem.title = @&搜索漫画&;& & //设置bar的frame& & self.bar.frame=CGRectMake(0, 65, 300, 35);& & [self.view addSubview:self.bar];& & self.bar.placeholder = @&漫画名/作者/类型&;& & // 设置键盘类型& & self.bar.keyboardType = UIKeyboardTypeNamePhonePad;& & // searchBar& 代理,记得签协议& & self.bar.delegate = self;}2. 触发方法,创建searchController// searchBar的代理方法,当searchBar的textField开始编辑的时候调用,包含空- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{& & // 创建出搜索使用的表示图控制器& & self.searchTVC = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];& & _searchTVC.tableView.dataSource = self;& & _searchTVC.tableView.delegate = self;&& &&& && & // 使用表示图控制器创建出搜索控制器& & self.searchController = [[UISearchController alloc] initWithSearchResultsController:_searchTVC];&& && & // 搜索框检测代理& & //(这个需要遵守的协议是 &UISearchResultsUpdating& ,这个协议中只有一个方法,当搜索框中的值发生变化的时候,代理方法就会被调用)& & _searchController.searchResultsUpdater = self;& & _searchController.delegate = self;& & _searchController.searchBar.placeholder = @&漫画名/作者/类型&;& //& _searchController.searchBar.delegate =& & [self presentViewController:_searchController animated:YES completion:^{ // 当模态推出这个searchController的时候,需要把之前的searchBar隐藏,如果希望搜索的时候看不到热门搜索什么的,可以把这个页面给隐藏& & & & self.bar.hidden = YES;& & & & self.view.hidden = YES;&& & & && & }];}3.监听输入的关键字, 把输入的关键字,传到接口处去请求数据#pragma mark - UISearchResultsUpdating Method#pragma mark 监听者搜索框中的值的变化- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{& & // 1. 获取输入的值&& self.inputText = searchController.searchBar.text;& & [self afn1];}4. 请求数据并解析(我这里用的时AFN请求, 其他方法都可以,随意)// afnq请求数据(搜索数据)-(void)afn1{& & AFNetworkReachabilityManager *netWorkManager = [AFNetworkReachabilityManager sharedManager];& & NSLog(@&%d&, netWorkManager.isReachable);& & NSString *url_string = [NSString stringWithFormat:@&http://pappappap&, self.inputText];& & NSString *url = [url_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];&& & NSLog(@&nnnnnn%@&, url);& & AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];& & manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@&text/html&];& & [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {& & & & [netWorkManager stopMonitoring];& & & & NSLog(@&kkk object = %@&, responseObject);& & & & NSMutableDictionary *dic = [NSMutableDictionary dictionary];& & & & dic = responseO& & & & self.searchResultDataArray = [NSMutableArray array];& & & & NSMutableDictionary *dic1 = [dic objectForKey:@&info&];& & & & NSMutableDictionary *dic2 = [dic1 objectForKey:@&data&];& & & & NSMutableArray *array = [dic2 objectForKey:@&items&];& & & & for (NSMutableDictionary *dic in array) {& & & & & & Comicslist *comics = [[Comicslist alloc] init];& & & & & & comics.bigbook_id = [NSString stringWithFormat:@&%@&, [dic objectForKey:@&id&]];& & & & & & comics.bigbook_name = [dic objectForKey:@&name&];& & & & & & comics.bigbook_author = [dic objectForKey:@&author&];& & & & & & comics.coverurl = [dic objectForKey:@&coverurl&];&& & & & & // NSString *key = [dic objectForKey:@&key_name&];&& & & & & // comics.key_name = [NSString stringWithFormat:@&%@%@&,comics.bigbook_name, comics.bigbook_author];& & & & & & [self.searchResultDataArray addObject:comics];& & & & }&& & & && & & & [_searchTVC.tableView reloadData];& & } failure:^(AFHTTPRequestOperation *operation, NSError *error) {& & & & NSLog(@&失败 %@&, error);& & }];&& &}5.设置显示搜索结果的tableView, 即self.searchTVC的tableView// 设置搜索tableView section个数- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{& & return 1;}// 设置搜索tableView cell个数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{& & if (_searchResultDataArray.count == 0) {& & & & NSLog(@&33333&);& & & & return 1;& & }& & return _searchResultDataArray.count;}// 设置搜索tableView的cell- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{& & static NSString *cellIdentifier = @&indenfy&;& & UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];& & if (cell == nil) {& & & & cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];& & }& & if (self.searchResultDataArray.count != 0) {& & Comicslist *comics = [self.searchResultDataArray objectAtIndex:indexPath.row];& & cell.textLabel.text = comics.bigbook_& & NSString *str = comics.& & NSURL *url = [NSURL URLWithString:str];& & UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];& & cell.imageView.image =& & }else{& & & cell.textLabel.text = @&没有查找的内容&;& & & & cell.imageView.image = nil;& & }& & return}// 设置cell高度&- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{& & return 100;}6. 设置搜索tableView 点击进入搜索结果- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ // 跳转操作}7.细节处理(1)当搜索页面消失的时候,让原先的搜索bar和View显示-(void)didDismissSearchController:(UISearchController *)searchController{& & self.bar.hidden = NO;& & self.view.hidden = NO;}(2)当View将要出现的时候, view显示- (void)viewWillAppear:(BOOL)animated{& & self.view.hidden = NO;}(3) 取消按钮触发方法, 点击取消后,self.bar和self.view显示出来-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{& & self.bar.hidden = NO;& & self.view.hidden = NO;}哈哈,激动人心的时刻,看一下运行的结果:1.进入搜索界面2.点击触发创建searchController3.进行搜索4.点击取消按钮后回原来的界面
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2894次
排名:千里之外
原创:10篇}

我要回帖

更多关于 uisearchbar 取消按钮 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信