UISearchBar 完美自定义,适配6.0、7.0、7.1

直接进入主题,之前在网上收索如何自定义UISearchBar,得到的答案都是遍历子视图,但是现在不同的系统遍历子视图不都能拿到我们想要的视图,比如输入框和取消button。 1、如何去掉UISearchBar的背景,统一6.0、7.0、7.1 的样式。 下面是代码:

float version = [[[UIDevicecurrentDevice ] systemVersion ]floatValue ];

    

   if ([searchBarrespondsToSelector :@selector (barTintColor)]) {

       float  iosversion7_1 =7.1 ;

       if (version >= iosversion7_1){

           //iOS7.1

            [[[[searchBar.subviewsobjectAtIndex :0 ]subviews ]objectAtIndex :0 ]removeFromSuperview ];

            [searchBarsetBackgroundColor :[UIColorclearColor ]];

        }else{

           //iOS7.0

            [searchBarsetBarTintColor :[UIColorclearColor ]];

            [searchBarsetBackgroundColor :[UIColorclearColor ]];

        }

    }else {

        

        //iOS7.0 以下

        

        [[searchBar.subviewsobjectAtIndex :0 ]removeFromSuperview ];

        

        [searchBarsetBackgroundColor :[UIColorclearColor ]];

        

    }


2、统一设置SearchBar的背景图片和输入框的清空按钮,注意设置背景颜色是不能成功的:

UIImage *image = [UIImage imageNamed:@"search_frame_n.png"];

    [_citySearchBar setSearchFieldBackgroundImage:image forState:UIControlStateNormal];



[_SearchBarsetImage:[UIImageimageNamed:@"city_btn_null.png"]forSearchBarIcon:UISearchBarIconClearstate:UIControlStateNormal];

    [_SearchBarsetImage:[UIImageimageNamed:@"city_btn_null.png"]forSearchBarIcon:UISearchBarIconClearstate:UIControlStateHighlighted];

    

3、设置取消button,我之前也是用遍历,发现在7.0之后苹果已经不允许访问了,所以我们可以在编辑时把SearchBar的宽度缩小,后面添加一个Button,这样样式标题都可以自定义,又可实现统一不同系统的样式。


4、最后收索现在一般都是和UISearchDisplayController组合使用,现在都是可以匹配文字和拼音的收索,PinYinForObjc的转换速度很快,是个不错的工具。


历史第6人! 勒布朗成为最年轻季后赛5000分先生


爱球吧



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值