zoukankan      html  css  js  c++  java
  • 美团HD(7)-添加取消搜索按钮

    DJSelectCityViewController.m

    #pragma mark - UISearchBar 代理方法
    
    /** SearchBar开始编辑 */
    - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
    
        // 隐藏导航栏
        [self.navigationController setNavigationBarHidden:YES animated:YES];
        // 显示遮罩
        UIView *cover = [[UIView alloc] init];
        cover.backgroundColor = [UIColor blackColor];
        cover.alpha = 0.2;
        cover.frame = self.cityTableView.frame;
        cover.tag = DJCoverTag;
        
        // 由于UIView 不是UIControl,所以没有addTarget方法,可以使用UITapGestureRecognizer代替
        // 当conver被点击时,移除第一响应者
        [cover addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:searchBar action:@selector(resignFirstResponder)]];
        [self.view addSubview:cover];
        // 设置当前搜索框背景为高亮背景
        [searchBar setBackgroundImage:[UIImage imageNamed:@"bg_login_textfield_hl"]];
        // 显示取消按钮
        [searchBar setShowsCancelButton:YES animated:YES];
        
    }
    
    
    
    /** SearchBar结束编辑 */
    - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
    
        // 显示导航栏
        [self.navigationController setNavigationBarHidden:NO animated:YES];
        // 隐藏遮罩
        [[self.view viewWithTag:DJCoverTag] removeFromSuperview];
        // 设置当前搜索框背景为普通背景
        [searchBar setBackgroundImage:[UIImage imageNamed:@"bg_login_textfield"]];
        // 隐藏取消按钮
        [searchBar setShowsCancelButton:NO animated:YES];
        
    }
    
    
    /** 当searchBar上面的取消按钮被点击时调用此方法 */
    - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
        // 隐藏键盘
        [searchBar resignFirstResponder];
        // 清空输入内容
        searchBar.text = @"";
    }
    
    
    /** 当searchBar内的文字发生改变时调用此方法 */
    - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    
        UIView *cover = [self.view viewWithTag:DJCoverTag];
        if (searchText.length) { // 当前输入内容不为空
            if(cover.subviews.count <= 0) {
                cover.alpha = 1.0;
                self.searchResultVC.view.frame = CGRectMake(0, 0, cover.width, cover.height);
                [cover addSubview:self.searchResultVC.view];
            }
        } else { // 当前输入内容为空
            [self.searchResultVC.view removeFromSuperview];
             cover.alpha = 0.2;
        }
        
    }

  • 相关阅读:
    html 克隆页面上的内容,实现增删执行步骤的功能
    form表单提交数据后接收后端返回的数据
    基于linux Asciinema开发webssh的录像回放功能说明及内容记录
    django 后端JsonResponse返回json数据给前端完美接收并将数据写入前端页面做展示
    高清视频压缩工具ffmpeg
    vue.js 入门
    鼠标点击选中着色,包含这个标签下的所有子标签
    回车即提交from表单数据
    button点击按钮触发提交from表单数据
    完美定义点击按钮触发函数提交数据【ajax】
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6275151.html
Copyright © 2011-2022 走看看