如何在 iOS 中实现如下图所示的搜索功能?

Posted

技术标签:

【中文标题】如何在 iOS 中实现如下图所示的搜索功能?【英文标题】:How can I implement feature of search like below image in iOS? 【发布时间】:2018-01-08 08:47:00 【问题描述】:

以上图片为 Gmail 应用示例。

我想要的是,

图片 2 - 我想显示这样的建议列表,当用户点击该建议时,它必须根据该搜索值导航下一个视图

图 3 A - (在输入之前)当我点击搜索栏按钮时,就像我想显示的这个视图一样,我也想显示如图所示的分段控件。

图 3 B - 当用户根据搜索值开始输入时,数据必须显示在表格视图中。

我不详细了解表格视图及其功能。我想了解如何在 ios 中实现此功能。

任何人都可以帮我实现这个功能。

【问题讨论】:

你扫过cocoacontrols.com和cocoapods.com了吗?他们将拥有图书馆而不是重新发明*** 在 cocoaControls 或 cocoaPods 中搜索 AutoComplete UITextfield search results controller? 我实现了搜索栏,目前搜索结果显示在同一个表格视图中。 现在,我想要的是,我想在另一个表格视图和建议列表中显示结果,如图 2 所示。 【参考方案1】:

第一步:只需创建一个搜索导航按钮

    UIButton *searchButton =  [UIButton buttonWithType:UIButtonTypeCustom];
    [searchButton setImage:[UIImage imageNamed:@"search1"] forState:UIControlStateNormal];
    [searchButton addTarget:self action:@selector(searchButtonClicked) forControlEvents:UIControlEventTouchUpInside];
    [searchButton setFrame:CGRectMake(10, 0, 35, 35)];

     UIView *rightBarButtonItems = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 76, 32)];
    [rightBarButtonItems addSubview:searchButton];

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBarButtonItems];

第 2 步:之后对其执行操作,编写导航下一个视图的代码

- (IBAction)searchButtonClicked 

   SearchViewController * search=[self.storyboard instantiateViewControllerWithIdentifier:@"SearchViewControllerId"];
   [self.navigationController pushViewController:search animated:YES];

    

第 3 步:取一个文本字段和分段控件,如下图所示,并在分段控件下方添加 2 个表格视图并编写代码。

// This method used to allow select segmented button multiple times (multi-select segmented control)

-(void)setMultiSelectControl:(MultiSelectSegmentedControl *)multiSelectControl
    _multiSelectControl = multiSelectControl;
    self.multiSelectControl.tag = 2;
    self.multiSelectControl.delegate = self;


-(void)multiSelect:(MultiSelectSegmentedControl *)multiSelecSegmendedControl didChangeValue:(BOOL)value atIndex:(NSUInteger)index

if(index==0)
    

    _multiSelectControl.selectedSegmentIndex=0;
    _tableview1.hidden=NO;
    _tableview2.hidden=YES;

    [_seachTextField resignFirstResponder];

    // your code



if (index==1) 

    _multiSelectControl.selectedSegmentIndex=1;

    _tableview1.hidden=YES;
    _tableview2.hidden=NO;

    [_seachTextField resignFirstResponder];

     // your code




【讨论】:

以上是关于如何在 iOS 中实现如下图所示的搜索功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITextView 中实现滚动功能?

用latex写论文,如何在一篇文章中实现参考文献的上标引用和普通引用?

如何在 discord.py 中嵌入如下图所示的按钮? [关闭]

如何在 ExtJS 中实现这个自定义网格?

如何在 Swift 3 中制作下拉菜单

Pycharm中如何安装python库