当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS之单独使用UISearchBar创建搜索框的示例

iOS之单独使用UISearchBar创建搜索框的示例

2019年07月24日  | 移动技术网IT编程  | 我要评论

刘恺威蒋欣热拥,小学生现代诗大全,钢琴曲网站

这里实现的是进入页面后直接在导航栏上显示搜索框(包含右侧取消按钮),并弹出键盘且搜索框为直接可输入状态(第一响应者),点击右侧取消按钮后收起键盘并返回上一页。

搜索页面

1.实现代理uisearchbardelegate

@interface searchviewcontroller ()<uisearchbardelegate>

2.创建一个uisearchbar为属性

@property (nonatomic, strong) uisearchbar *searchbar;

3.进入页面后弹起键盘和离开页面前收起键盘

- (void)viewdidappear:(bool)animated
{
  [super viewdidappear:animated];
  if (!_searchbar.isfirstresponder) {
    [self.searchbar becomefirstresponder];
  }
}
- (void)viewwilldisappear:(bool)animated
{
  [super viewwilldisappear:animated];
  [self.searchbar resignfirstresponder];
}

4.具体实现

- (void)setbarbuttonitem
{
  //隐藏导航栏上的返回按钮
  [self.navigationitem sethidesbackbutton:yes];
  //用来放searchbar的view
  uiview *titleview = [[uiview alloc] initwithframe:cgrectmake(5, 7, self.view.frame.size.width, 30)];
  //创建searchbar
  uisearchbar *searchbar = [[uisearchbar alloc] initwithframe:cgrectmake(0, 0, cgrectgetwidth(titleview.frame) - 15, 30)];
  //默认提示文字
  searchbar.placeholder = @"搜索内容";
  //背景图片
  searchbar.backgroundimage = [uiimage imagenamed:@"clearimage"];
  //代理
  searchbar.delegate = self;
  //显示右侧取消按钮
  searchbar.showscancelbutton = yes;
  //光标颜色
  searchbar.tintcolor = uicolorfromrgb(0x595959);
  //拿到searchbar的输入框
  uitextfield *searchtextfield = [searchbar valueforkey:@"_searchfield"];
  //字体大小
  searchtextfield.font = [uifont systemfontofsize:15];
  //输入框背景颜色
  searchtextfield.backgroundcolor = [uicolor colorwithred:234/255.0 green:235/255.0 blue:237/255.0 alpha:1];
  //拿到取消按钮
  uibutton *canclebtn = [searchbar valueforkey:@"cancelbutton"];
  //设置按钮上的文字
  [canclebtn settitle:@"取消" forstate:uicontrolstatenormal];
  //设置按钮上文字的颜色
  [canclebtn settitlecolor:[uicolor whitecolor] forstate:uicontrolstatenormal];
  [titleview addsubview:searchbar];
  self.searchbar = searchbar;
  self.navigationitem.titleview = titleview;
}

5.实现代理方法

#pragma mark - uisearchbardelegate
- (bool)searchbarshouldbeginediting:(uisearchbar *)searchbar{
  return yes;
}

- (void)searchbartextdidbeginediting:(uisearchbar *)searchbar {
  searchbar.showscancelbutton = yes;
}

- (void)searchbarsearchbuttonclicked:(uisearchbar *)searchbar
{
  nslog(@"searchbutton");
}

- (void)searchbarcancelbuttonclicked:(uisearchbar *)searchbar
{
  [self.searchbar resignfirstresponder];
  [self.navigationcontroller popviewcontrolleranimated:yes];
}

- (void)searchbartextdidendediting:(uisearchbar *)searchbar
{
  searchbar.showscancelbutton = yes;
}

- (void)searchbar:(uisearchbar *)searchbar textdidchange:(nsstring *)searchtext
{
  nsstring *inputstr = searchtext;
  [self.results removeallobjects];
  for (eldermodel *model in self.dataarray) {
    if ([model.name.lowercasestring rangeofstring:inputstr.lowercasestring].location != nsnotfound) {
      [self.results addobject:model];
    }
  }
  [self.tableview reloaddata];
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网