温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何修改系统UISearchBar的样式

发布时间:2020-07-13 00:04:56 来源:网络 阅读:728 作者:一网打尽2 栏目:移动开发

        自从接触iOS快一年多的时间了,感觉自己还是菜鸟一枚,最近在整理自己的开发过程中得点点滴滴,想通过博客的形式记录下来。本博客会陆续添加内容,鉴于本人水平有限,如有错误,请给与指正,感激不尽。

        修改UISearchBar的样式,网上也有很多种,也都大同小异,本篇也不例外,但确实很实用,废话不多说,上代码:

        1.UISearchBar带有背景颜色的

         if (!_searchBar) {
        _searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(10, 20, self.view.frame.size.width-20, 40)];
        _searchBar.placeholder=@"搜索";
        _searchBar.delegate=self;
        //searchBar的背景颜色
        //1.
        [_searchBar setBackgroundColor:[UIColor orangeColor]];
        //2.关键
        [[[_searchBar.subviews objectAtIndex:0].subviews objectAtIndex:0] removeFromSuperview];
        
        
        //显示取消按钮
        _searchBar.showsCancelButton=YES;
        
        UIButton *cancelBtn=[_searchBar valueForKey:@"_cancelButton"];
        [cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
        cancelBtn.titleLabel.font=[UIFont systemFontOfSize:14];
        [cancelBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        
        //设置光标的颜色
        _searchBar.tintColor=[UIColor redColor];
        
        
        UITextField *searchFiled=[_searchBar valueForKey:@"_searchField"];
        //设置处于编辑状态
        [searchFiled becomeFirstResponder];
        
        //输入文本的颜色
        searchFiled.textColor=[UIColor greenColor];
        
        //输入文本字体的大小
        searchFiled.font=[UIFont systemFontOfSize:14];
        
        //输入框的圆角设置
        searchFiled.layer.cornerRadius=10;
        searchFiled.layer.masksToBounds=YES;
        
        //输入框里面的背景颜色
        searchFiled.backgroundColor=[UIColor whiteColor];
        
        //提示文本的颜色
        [searchFiled setValue:[UIColor lightGrayColor] forKeyPath:@"_placeholderLabel.textColor"];
        
        self.cancelField=searchFiled;
        
        //输入框里的图标
        [_searchBar setImage:[UIImage p_w_picpathNamed:@"boy.jpg"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];

        [self.view addSubview:_searchBar]       

      2.UISearchBar不带背景颜色的

       //    如果不要searchBar的背景颜色
//    1.关键
    [_searchBar setBackgroundColor:[UIColor clearColor]];
    [[[_searchBar.subviews objectAtIndex:0].subviews objectAtIndex:0] removeFromSuperview];
//    2.
    UIView *searchView=[[UIView alloc]initWithFrame:CGRectMake(10, 20, self.view.frame.size.width-20, 40)];
    searchView.layer.cornerRadius=10;
    searchView.layer.borderColor=[UIColor orangeColor].CGColor;
    searchView.layer.borderWidth=1.f;
    [self.view addSubview:searchView];
    [self.view addSubview:_searchBar];


#pragram--

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    NSLog(@"实时监控文字输入");
}


- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    NSLog(@"点击搜索按钮");
}


- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    NSLog(@"点击取消按钮");
    [self.cancelField resignFirstResponder];
}

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI