• 美团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;
        }
        
    }

  • 相关阅读:
    android studio 使用(一)
    【转】How to Change File Ownership & Groups in Linux
    ubuntu 14.04安装nodejs
    基于源码学习-fighting
    linux shell操作
    linux用户管理
    ubutu强制结束进程 kill -9 ProcessID
    ubuntu 添加和删除用户
    ubuntu 14.04查看java的安装路径
    vuex 中关于 mapState 的作用
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6275151.html
Copyright © 2020-2023  润新知