更改UISearchBar 的背景色、取消按钮颜色

//更改UISearchBar iOS7 中的取消按钮色调颜色


    NSMutableDictionary* dic = [NSMutableDictionary dictionary];

    dic[NSForegroundColorAttributeName] = FXQColor(98, 98, 100);

    

    [[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil]setTitleTextAttributes:dic forState:UIControlStateNormal];

    

    for (UIView *view in _searchBar.subviews) {

        // for before iOS7.0

        if ([view isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {

            [view removeFromSuperview];

            break;

        }

        // for later iOS7.0(include)

        if ([view isKindOfClass:NSClassFromString(@"UIView")] && view.subviews.count > 0) {

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

            break;

        }

    }

    //FXQColor(243, 243, 243)

    [self setSearchTextFieldBackgroundColor:[UIColor redColor] searchBar:_searchBar];


/** 修改searchbar的背景色 */

- (void)setSearchTextFieldBackgroundColor:(UIColor *)backgroundColor searchBar:(UISearchBar *)search

{

     UIView *searchTextField = nil;

     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {

         // 经测试, 需要设置barTintColor, 才能拿到UISearchBarTextField对象

         _searchBar.barTintColor = [UIColor whiteColor];

         searchTextField = [[[_searchBar.subviews firstObject] subviews] lastObject];

     } else { // iOS6以下版本searchBar内部子视图的结构不一样

        for (UIView *subView in _searchBar.subviews) {

             if ([subView isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {

                 searchTextField = subView;

             }

         }

     }

 

  searchTextField.backgroundColor = backgroundColor;

}

//取消searchbar背景色

 - (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size

    {

        CGRect rect = CGRectMake(0, 0, size.width, size.height);

        UIGraphicsBeginImageContext(rect.size);

        CGContextRef context = UIGraphicsGetCurrentContext();

        

        CGContextSetFillColorWithColor(context, [color CGColor]);

        CGContextFillRect(context, rect);

        

        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        

        return image;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值