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;
        }
        
    }

  • 相关阅读:
    Linux下C编程入门(1)
    Git 常用命令速查表
    Git Cheat Sheet 中文版
    Linux 在一个命令行上执行多个命令
    一个奇怪的错误的警示
    模块化编程实例(一)
    含有指针变量的结构体的指针的应用
    iOS 开发加密做法
    关于设置shadowPath的重要性
    关于设置shadowPath的重要性
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6275151.html
Copyright © 2011-2022 走看看