iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >iOS开发实现搜索框(UISearchController)
  • 527
分享到

iOS开发实现搜索框(UISearchController)

iOS搜索框UISearchController 2022-11-13 14:11:11 527人浏览 泡泡鱼
摘要

最近自己在写一个APP,其中需要实现搜索框搜索功能,于是乎就想写篇博客介绍下UISearchController和搜索框的实现。 我写的是一个天气预报APP,直接以我APP中的源代码

最近自己在写一个APP,其中需要实现搜索框搜索功能,于是乎就想写篇博客介绍下UISearchController和搜索框的实现。

我写的是一个天气预报APP,直接以我APP中的源代码来详细介绍下搜索框的实现。

注:在iOS 8.0以上版本中, 我们可以使用UISearchController来非常方便地在UITableView中添加搜索框. 而在之前版本中, 我们还是必须使用UISearchBar + UISearchDisplayController的组合方式。

初始化UISearchController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    self.searchController.searchResultsUpdater = self;
    self.searchController.dimsBackgroundDuringPresentation = false;
    [self.searchController.searchBar sizeToFit];
    self.tableView.tableHeaderView = self.searchController.searchBar;

}

使用UISearchController要继承UISearchResultsUpdating协议, 搜索必须实现UISearchResultsUpdating方法.

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
    [self.searchList removeAllObjects];
    //在iOS开发中,系统提供了NSPredicate这个类给我们进行一些匹配、筛选操作
    NSPredicate *searchPredicate = [NSPredicate predicateWithFORMat:@"SELF CONTaiNS[c] %@", self.searchController.searchBar.text];
    self.searchList = [[self.dataList filteredArrayUsingPredicate:searchPredicate] mutableCopy];
    dispatch_async(dispatch_get_main_queue(), ^{
        [self.tableView reloadData];
    });
}

通过UISearchController的active属性来判断输入框是否处于active状态,然后更新UITableview

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    if (!self.searchController.active) {
        return self.dataList.count;
    }
    else{
        return self.searchList.count;
    }
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *ID = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    if (!self.searchController.active) {
        cell.textLabel.text = self.dataList[indexPath.row];
    }
    else{
        cell.textLabel.text = self.searchList[indexPath.row];
    }
    return cell;

}

搜索完之后,将搜索框移除

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    if (self.searchController.active) {
        self.searchController.active = NO;
        [self.searchController.searchBar removeFromSuperview];
    }
}

效果图如下:

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

--结束END--

本文标题: iOS开发实现搜索框(UISearchController)

本文链接: https://www.lsjlt.com/news/172065.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS开发实现搜索框(UISearchController)
    最近自己在写一个APP,其中需要实现搜索框搜索功能,于是乎就想写篇博客介绍下UISearchController和搜索框的实现。 我写的是一个天气预报APP,直接以我APP中的源代码...
    99+
    2022-11-13
    iOS 搜索框 UISearchController
  • java怎么实现搜索框搜索功能
    要实现搜索框搜索功能,可以按照以下步骤进行:1. 在前端页面上创建一个搜索框,如一个文本框和一个按钮。2. 在后端创建一个处理搜索请...
    99+
    2023-09-26
    java
  • iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能
    注:CSDN的代码块有点捞,如果浏览器窗口较窄,一行代码占了两行的位置,后面的代码就看不到了,大家可以把浏览器窗口拉大一点 UI小姐姐设计的搜索框经常是五花八门,系统的搜索框经常不能...
    99+
    2022-06-01
    ios UITextField 搜索框 搜索
  • css搜索框如何实现
    这篇文章将为大家详细讲解有关css搜索框如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 css实现搜索框的方法:首先组织页面结构;然后...
    99+
    2022-10-19
  • Angular如何实现搜索框
    这篇文章主要介绍Angular如何实现搜索框,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.要求:利用 AngularJS 框架实现手机产品搜索功能,题目要求:1)自行查找素材,按...
    99+
    2022-10-19
  • Android如何实现搜索框
    这篇文章主要介绍了Android如何实现搜索框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下展示效果代码区SouActivitypublic class...
    99+
    2023-05-30
    android
  • Android实现实时搜索框功能
    AutoCompleteTextView,自动完成文本框。用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。该组件继承EditText,所以它支持EditText组件提供的属...
    99+
    2023-05-30
    android 搜索框 roi
  • css如何实现带搜索图标的搜索框功能
    这篇文章给大家分享的是有关css如何实现带搜索图标的搜索框功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言给大家分享一下前端用处很多的带小图标的搜索框的制作方法。效果展示基本思路搜索图像用绝对定位放到搜索框...
    99+
    2023-06-08
  • Android顶部搜索框怎么实现
    要实现Android顶部搜索框,可以使用Toolbar和SearchView组件。 首先,在你的布局文件中添加一个Toolbar组件...
    99+
    2023-10-26
    android
  • JavaScript怎么实现智能搜索框
    今天小编给大家分享一下JavaScript怎么实现智能搜索框的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2022-10-19
  • angular4实现带搜索的下拉框
    本文实例为大家分享了angular4实现带搜索的下拉框的具体代码,供大家参考,具体内容如下 思路: 1、站在巨人的肩膀上,确定了bootstrap-select的插件样式。确定了pr...
    99+
    2022-11-13
  • Ajax实现搜索框提示功能
    html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF...
    99+
    2022-11-13
  • Android如何实现顶部搜索框
    这篇文章给大家分享的是有关Android如何实现顶部搜索框的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文介绍两种SearchView的使用情况,一种是输入框和搜索结果不在一个activity中,另一种是在一个...
    99+
    2023-05-30
    android
  • Vue3如何实现全局搜索框
    这篇文章主要介绍“Vue3如何实现全局搜索框”,在日常操作中,相信很多人在Vue3如何实现全局搜索框问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3如何实现全局搜索框”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • 微信小程序云开发实现搜索功能
    微信小程序云开发实现搜索功能,供大家参考,具体内容如下 微信小程序使用云开发实现搜索功能有两种情况,一种是简单的搜索用关键字来查询数据,另一种是模糊查询关于关键字的全部数据查询。废话...
    99+
    2022-11-13
  • Java应用开源框架实现简易web搜索引擎
    引言应用 Java 的开源库,编写一个搜索引擎,这个引擎能爬取一个网站的内容。并根据网页内容进行深度爬取,获取所有相关的网页地址和内容,用户可以通过关键词,搜索所有相关的网址。具体功能(1) 用户可以指定爬取一个url对应的网页的内容。 (...
    99+
    2023-05-30
    java web 搜索
  • 怎么用html5实现语音搜索框
    本篇内容主要讲解“怎么用html5实现语音搜索框”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用html5实现语音搜索框”吧!我们先看下他们的不同显示。下面...
    99+
    2022-10-19
  • DIV+CSS怎么实现搜索框布局
    这篇文章主要讲解了“DIV+CSS怎么实现搜索框布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“DIV+CSS怎么实现搜索框布局”吧!搜索表单控件效果截图...
    99+
    2022-10-19
  • vue实现带放大镜的搜索框
    本文实例为大家分享了vue实现带放大镜的搜索框,供大家参考,具体内容如下 字体图标在input单标签中的用法: 第一步,先在main.js 中全局引入iconfont图标; 第二步...
    99+
    2022-11-12
  • Android EditText搜索框实现图标居中
    类似这样EditText 搜索框,hiht 提示有一个icon并且text内容。重写EditText :package mobi.truekey.weapp2.widget;import android.content.Context;im...
    99+
    2023-05-31
    android 搜索框 edittext
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作