`
_wyh
  • 浏览: 61044 次
社区版块
存档分类
最新评论

使用UISearchBar和UITableView实现搜索功能

    博客分类:
  • ios
阅读更多

     该程序实现了1到10000之间的数字搜索

 

1,声明UISearchBar和UITableView的委托

 

@interface ViewController : UIViewController <UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource>

 2,声明全局变量

 

 

@interface ViewController () {
    NSMutableArray *dataArr;
   
    NSMutableArray *filterDataArr;
   
    UITableView *numberTableView;
    
    UISearchBar *numberSearchBar;
}

dataArr : 存储所有要搜索的数据,1-10000

filterDataArr : 存储搜索到的数据

3,初始化数据,将1-10000存储到dataArr和filterDataArr中

    filterDataArr = [[NSMutableArray alloc] init];
    dataArr = [[NSMutableArray alloc] init];
    
    for (int i = 0; i < 10000; i++) {
        [dataArr addObject:[[NSString alloc] initWithFormat:@"%d", i]];
        [filterDataArr addObject:dataArr[i]];
    }

 4,初始化UITableView

    numberTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, numberSearchBar.frame.origin.y + numberSearchBar.frame.size.height, self.view.frame.size.width, self.view.frame.size.height - 80)];
    numberTableView.delegate = self;   
    numberTableView.dataSource = self;
    [self.view addSubview:numberTableView];

 5,初始化UISearchBar

    numberSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(40, 40, self.view.frame.size.width - 80, 40)];
    numberSearchBar.delegate = self;
    numberSearchBar.barStyle = UIBarStyleBlack;   //黑色风格  默认是白色
    numberSearchBar.barTintColor = [UIColor whiteColor];   //搜索框外背景变为百色
    [self.view addSubview:numberSearchBar];

 6,实现UISearchBar委托

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    [filterDataArr removeAllObjects];    过去数据全部消除
    
    for (int i = 0; i < dataArr.count; i++) {
        if ([dataArr[i] containsString:numberSearchBar.text]) {
            [filterDataArr addObject:dataArr[i]];
        }
    }
    
    [numberTableView reloadData];    //重置TableView
}

 7,实现UITableViewDelegate和UITableViewDataSource

//返回tableView的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return filterDataArr.count;
}

 

//搜索的数字显示在tableView每一行
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *identifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }
    else{
        // 删除cell中的子对象,解决覆盖问题。
        while ([cell.contentView.subviews lastObject] != nil) {
            [(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];
        }
    }

    if (filterDataArr.count == 0) {
        cell.textLabel.text = @"";
    }
    else {
        cell.textLabel.text = filterDataArr[indexPath.row];
    }
    
    return cell;
    
}

 

//每行高度为42
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 42;
}

 

//tableView的点击效果
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

 

效果如图

 

  • 大小: 33.5 KB
分享到:
评论

相关推荐

    ios UISearchDisplayController 实现 UITableView 搜索功能 - LeslieFang -

    为了实现搜索功能,我们需要监听UISearchBar的`textDidChange`事件,然后根据用户的输入过滤数据并更新`filterData`: ```objc - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText ...

    iphone 关于UITableView的排序,搜索、使用Interface Builder创建等

    实现搜索功能,你可以使用UISearchBar与UITableView配合。当用户在UISearchBar中输入时,实时更新过滤后的数据源,并调用`reloadData()`刷新表格视图。以下是一个简单的例子: ```swift func searchBar(_ searchBar...

    iOS UItableView

    这个教程将专注于如何在UITableView中实现查询功能以及集成UISEARCHBAR,让用户体验更加友好和高效。 首先,我们需要理解UITableView的基本概念。UITableView是一个可滚动的视图,可以显示一行行的数据,这些数据...

    iOS-UISearchBar

    `UISearchBar`通常与`UITableView`或`UICollectionView`结合使用,用于实现搜索功能,为用户提供便捷的数据过滤体验。本文将详细介绍`UISearchBar`的工作原理、常见用法以及如何将其与`UITableView`集成。 **1. ...

    UISearchBar搜索AutoComplete下拉列表搜索提示

    在iOS开发中,UISearchBar是用户界面中一个非常重要的组件,它用于实现搜索功能,让用户可以方便快捷地输入关键词进行查询。UISearchBar不仅提供基本的文本输入,还常常结合AutoComplete(自动完成)功能,来提升...

    ios-HJSearchUIDemo.zip

    为了实现搜索框的固定效果,开发者可能利用了Auto Layout约束,将UISearchBar固定在导航栏下面,确保其在用户滚动时始终保持可见。 对于搜索框随TableView滚动的实现,开发者可能采用了以下方法: 1. 将UISearchBar...

    iOS UISearchBar 搜索功能的 demo

    2. **实现搜索代理方法** 需要实现`UISearchBarDelegate`中的方法,如`searchBar:textDidChange:`,此方法会在用户输入时调用,可以根据新的搜索词更新搜索结果。同时,`searchBarSearchButtonClicked:`会在用户...

    uisearchbar 使用指南

    `UISearchBar`是iOS开发中的一个关键组件,用于在应用中实现搜索功能。它提供了一个用户界面,让用户能够输入查询并触发搜索操作。本指南将深入讲解`UISearchBar`的使用,包括基本设置、事件处理、自定义样式以及与...

    UISearchBar使用Demo

    总的来说,`UISearchBar`是iOS应用中实现搜索功能的基石。通过设置代理和处理用户输入事件,我们可以构建出强大的搜索功能,提升应用的交互性和实用性。在这个Demo中,你可以深入理解`UISearchBar`的使用,以及如何...

    UISearchController实现搜索功能

    在本项目中,你将找到一个使用UISearchController实现搜索功能的示例,代码规范且注释清晰,便于理解和学习。 首先,我们需要理解UISearchController的基本概念。它是UINavigationController的子类,负责处理搜索...

    Iphone TableSearch实例,Iphone搜索功能

    3. **实现搜索逻辑**:在UISearchBar的代理方法`- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText`中,根据用户的输入更新过滤后的数据源。这里可以使用`NSPredicate`来过滤数组,...

    iOS_Apprentice_4_StoreSearch-v5.pdf

    首先,教程会介绍基础的UI设计原则,包括使用苹果推荐的UI元素如UISearchBar和UITableView来构建搜索界面。UISearchBar是用户输入搜索关键词的主要入口,而UITableView则用于展示搜索结果,这两者的有效结合是实现...

    UITableViewSearch实例

    在iOS开发中,UITableView是展示数据列表的重要组件,而实现搜索功能则能让用户更高效地在大量数据中找到目标信息。`UITableViewSearch`实例就是针对这个需求设计的,它允许用户通过输入关键词来实时筛选UITableView...

    ios搜索功能的实现源码

    在iOS开发中,实现搜索功能是一项常见的任务,特别是在拥有大量数据需要展示的场景下,如表视图(UITableView)。这个“ios搜索功能的实现源码”提供了实例代码,可以帮助开发者理解并快速集成搜索功能到自己的应用...

    Iphone TableView 搜索

    "Iphone TableView 搜索"这个主题涉及到如何在UITableView中实现搜索功能,使得用户能够方便地在大量数据中查找特定内容。这种功能通常被称为“搜索栏”或“过滤器”,在iOS应用中是非常常见且实用的。 1. **...

    UITableView-Search-Swift-2.0:在Swift 2.0中,带有UITableView和搜索栏的基础项目。 包括简单和自定义对象搜索

    本项目“UITableView-Search-Swift-2.0”着重于在Swift 2.0环境下,如何集成和使用`UITableView`以及实现搜索功能。下面我们将详细探讨相关知识点。 1. **UITableView基本使用**: - `UITableView`类是Apple提供的...

    ios-强大的搜索功能和搜索设置.zip

    本文将深入探讨如何在iOS中实现强大的搜索功能和相应的搜索设置,以满足各种搜索需求。 首先,我们要理解“搜索框”(Search Bar)在iOS中的基本使用。Search Bar是UIKit框架中的一个组件,通常位于导航栏的下方,...

    iOS 开发项目基于 UITableView 的待办事项列表应用

    通过实现UISearchBar的代理方法,可以实现实时搜索功能。使用`sortDescriptors`可以对数据进行排序,而筛选功能则可以通过添加过滤条件实现。 在界面设计上,我们可以考虑使用Storyboard或代码进行布局。SwiftUI是...

    ios-UISearchBar.zip

    在iOS开发中,`...在设计和实现搜索功能时,开发者需要注意性能优化,确保即使在大量数据下,搜索操作也能保持流畅。同时,考虑到不同用户的使用习惯,合理设置搜索逻辑和反馈机制,使搜索功能既强大又易用。

    iOS 下拉列表的实现

    在iOS开发中,创建下拉列表通常涉及到对用户界面元素的巧妙组合,特别是UISearchBar和UITableView的使用。本文将深入探讨如何在iOS应用中实现一个简单的下拉列表,以供用户进行选择操作。 首先,我们需要了解`...

Global site tag (gtag.js) - Google Analytics