iOS搜索功能的几种实现方式

1、UISearchBar
        UISearchBar相对于后面的UISearchDisplayController和UISearchController更底层。后面两种搜索方式的实现都是建立在其基础之上。采用该类实现搜索可以不用担心点击输入搜索内容时视图自带往上移动的问题,并且可以随意设置搜索框的位置。

a、创建示例:

UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(70, 9, DEVICE_WIDTH-140, 28)];
    searchBar.placeholder = @"请输入搜索内容";
    searchBar.barStyle = UISearchBarStyleMinimal;
    searchBar.delegate = self;
    UITextField *searchField1 = [searchBar valueForKey:@"_searchField"];
    searchField1.backgroundColor = [UIColor whiteColor];
    searchBar.tintColor = [UIColor blackColor];
    [self.navigationController.navigationBar addSubview:searchBar];
b、搜索时执行的回调方法:

        在协议UISearchBarDelegate中,如- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;

c、搜索结果的展示:

        搜索结果的展示这里可以进行灵活的自定义。



2、UISearchDisplayController

        UISearchDisplayController在原有的UISearchBar上进行进一步的封装,直接将搜索框视图和搜索对象源绑定在一起,同时也对外提供了配置展示视图的入口.searchResultsTableView ,一般多用tableView作为搜索结果展示视图。



搜索时执行的方法在协议UISearchDisplayDelegate中,如方法

- (void) searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller NS_DEPRECATED_IOS(3_0,8_0);等。


3、UISearchController

        在iOS8以后UISearchDisplayControllerUISearchController替换掉。UISearchController直接将 UISearchBar封装在了类内部,初始化的时候不再从外部传入UISearchBar,只需要将用于展示搜索结果的视图控制器传入。UISearchController将对搜索结果进行更新的代理者和监控UISearchBar事件响应的代理者分离开了,分别为.searchResultsUpdater和.delegate

a、创建代码:

SearchResultViewController *resultVC = [[SearchResultViewController alloc]init];
    self.searchControl = [[SearchViewController alloc]initWithSearchResultsController:resultVC];
    self.searchControl.delegate = self;
    self.searchControl.searchResultsUpdater = self;
    self.searchControl.searchBar.placeholder = @"请输入搜索内容";
    self.searchControl.dimsBackgroundDuringPresentation = NO;
    [self.searchControl.searchBar sizeToFit];
    //颜色设置
    _searchControl.searchBar.barTintColor = [UIColor orangeColor];
    //开启允许另一个tvc做呈现的控制器
//    self.definesPresentationContext = YES;
    self.tableView.tableHeaderView = self.searchControl.searchBar;

4、自定义搜索框视图的部分参数设置

    //光标颜色
    [[[_searchControl.searchBar.subviews objectAtIndex:0].subviews objectAtIndex:1] setTintColor:[UIColor XXX]];
    //字体颜色
    UITextField *searchField = [_searchControl.searchBar valueForKey:@"_searchField"];
    searchField.textColor = [UIColor XXX];
    //placeHolder颜色
    [searchField setValue:[UIColor XXX] forKeyPath:@"_placeholderLabel.textColor"];
    //取消按钮文字、颜色
    [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[UISearchBar class]]]setTintColor:[UIColor XXX]];
    [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[UISearchBar class]]]setTitle:@"XX"];
其中,修改cancel按钮为中文的大致有三种方式,但最好的就是上面这种处理方式。其余两种方式分别为:


a、文字更改:[searchBar setValue:@"取消" forKey:@"_cancelButtonText"];

      颜色设置:searchBar.tintColor = [UIColor XX];(注:这种方式可以达到需要的效果,但是在改变颜色的时候光标的颜色也会和 cancel按钮的颜色一致)


b、无论是上面哪种搜索的实现方式,在其输入信息便触发的方法里面执行以下代码:

      UIView *topView = searchBar.subviews[0];
       for (UIView *subView in topView.subviews) {

           if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {

              UIButton *cancelButton = (UIButton*)subView;
               [cancelButton setTitle:@"取消" forState:UIControlStateNormal];  //@"取消"
               [cancelButton setTintColor:[UIColor whiteColor]];

            }

       }

(注:该方式英文变为中文没问题,但是当第一次出现“取消”按钮时,取消按钮的颜色仍是系统的,以后再出现便是我们自己所设置的颜色)

另外也可以采用a中的颜色设置和b中的中文内容设置结合。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 为了在iOS设备上实现虚拟视频插件功能,需要下载和安装相应的软件。首先,在App Store中搜索“虚拟视频”或“VR视频”等关键词,就可以找到各种相关的应用程序。选择一个合适的应用程序后,可以点击“下载”按钮进行安装。安装完成后,打开应用,根据具体的软件界面操作即可开始使用虚拟视频功能。 虚拟视频插件可以将普通的视频文件转换成虚拟​现实的视频,使用户在观看视频时有一种身临其境的感觉。使用虚拟视频插件需要设备支持虚拟现实技术,如VR眼镜或头戴式设备。 需要注意的是,在下载和安装虚拟视频插件时,要关注软件的来源和安全性。建议选择官方应用商店或知名软件下载站点进行下载,避免下载来路不明的程序,以免给设备带来风险。此外,虚拟视频插件也需要一定的存储空间和设备性能支持,因此在安装之前要对设备进行充分的检测和准备,以便达到更好的观看效果。 ### 回答2: iOS虚拟视频插件是一种能够在iPhone或iPad设备上模拟播放虚拟视频的工具。用户可以通过插件来欣赏虚拟现实(VR)视频、全景视频或360度视频,提供更加沉浸式的观影体验。下面是关于iOS虚拟视频插件的下载安装方法: 1. 打开App Store应用商店:在iOS设备的主屏幕上找到并点击“App Store”图标。 2. 搜索插件名称:在App Store的搜索框中输入虚拟视频插件的名称,比如“VR Player”或“360 Video Player”。点击搜索按钮。 3. 查找插件:在搜索结果中找到相关的虚拟视频插件,并点击进入插件详情页面。 4. 下载插件:在插件详情页面,点击“获取”或“下载”按钮,等待插件下载完成。可能需要输入Apple ID和密码进行确认。 5. 安装插件:下载完成后,插件会自动安装到iOS设备上。在主屏幕上找到并点击插件图标,打开插件应用。 6. 浏览和观看虚拟视频:通过插件应用的界面,您可以选择和播放本地存储的虚拟视频文件,或者通过插件提供的网络资源来观看虚拟视频。根据插件的不同,可能还提供了一些额外的设置和功能供用户自定义。 请注意,不同的虚拟视频插件可能有不同的名称和特点,但是一般的下载安装步骤差不多。同时,iOS设备可能需要运行较新的操作系统版本才能支持某些虚拟视频插件,所以请确保您的设备已经更新到最新的操作系统版本。 希望以上步骤能够帮助您顺利下载和安装iOS虚拟视频插件,提供更加丰富多样的观影体验。 ### 回答3: 要在iOS设备上下载和安装虚拟视频插件,您可以按照以下步骤进行操作: 1. 打开App Store:在您的iOS设备上,找到并打开App Store应用。 2. 搜索插件名称:在App Store的搜索栏中,输入您想要下载和安装的虚拟视频插件的名称。 3. 浏览结果:浏览搜索结果,点击您要下载的插件的名称。 4. 查看和确认:查看插件的介绍、评分和评论,确保它符合您的需求和可靠性。 5. 下载和安装:点击插件页面上的“获取”或“安装”按钮。您可能需要验证Apple ID密码或使用Face ID/Touch ID进行确认。 6. 等待下载和安装:等待插件完成下载和安装过程。这通常只需要几秒钟或几分钟,具体时间取决于您的网络连接速度和插件的大小。 7. 完成安装:一旦插件成功下载和安装,您将在主屏幕或App库中看到其图标。 8. 配置和使用:根据插件的说明,可能需要在设置中进行一些配置或在相关应用中启用功能。根据插件的功能和用途,您可以开始使用虚拟视频插件了。 请注意,为了安全起见,只从可信任的来源下载插件。另外,某些插件可能需要越狱或特定的iOS版本才能下载和安装,请确保您的设备和操作系统满足插件的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值