关于UISearchBar在IOS6和IOS7的区别以及用法注意

首先,UISearchBar在不同的版本中,内部组成的元素是不一样的。
在ios6中 UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 
在ios7中,两个都是UIView,所以要自定义背景色,输入框的时候要分开设置。
在IOS6中:

UISearchBar *seachBar=[[UISearchBar alloc] init];

//修改搜索框背景

seachBar.backgroundColor=[UIColor clearColor];

//去掉搜索框背景

//1.

[[searchbar.subviews objectAtIndex:0]removeFromSuperview];

//2.

for (UIView *subview in seachBar.subviews)

{

if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])

{

[subview removeFromSuperview];

break;

}

}

//3自定义背景

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];

[mySearchBar insertSubview:imageView atIndex:1];

[imageView release];

//4输入搜索文字时隐藏搜索按钮,清空时显示

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {

searchBar.showsScopeBar = YES;

[searchBar sizeToFit];

[searchBar setShowsCancelButton:YES animated:YES];

return YES;

}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {

searchBar.showsScopeBar = NO;

[searchBar sizeToFit];

[searchBar setShowsCancelButton:NO animated:YES];

return YES;

}


//改变搜索按钮文字

//改变UISearchBar取消按钮字体

for(id cc in [searchBar subviews])

{

if([cc isKindOfClass:[UIButton class]])

{

UIButton *btn = (UIButton *)cc;

[btn setTitle:@"搜索" forState:UIControlStateNormal];

}

在IOS7中:

float version = [[[ UIDevice currentDevice ] systemVersion ] floatValue ]; 

    if ([ mySearchBar respondsToSelector : @selector (barTintColor)]) { 
        float  iosversion7_1 = 7.1 ; 
        if (version >= iosversion7_1) 
        { 
            //iOS7.1 
            [[[[ mySearchBar . subviews objectAtIndex : 0 ] subviews ] objectAtIndex : 0 ] removeFromSuperview ]; 
            [ mySearchBar setBackgroundColor :[ UIColor clearColor ]]; 
        } 
        else 
        { 
            //iOS7.0 
            [ mySearchBar setBarTintColor :[ UIColor clearColor ]]; 
            [ mySearchBar setBackgroundColor :[ UIColor clearColor ]]; 
        }
    } 
 else 
    { 
   //iOS7.0 以下 
        [[ mySearchBar . subviews objectAtIndex : 0 ] removeFromSuperview ]; 
        [ mySearchBar setBackgroundColor :[ UIColor clearColor ]]; 
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值