设置UISearchController的UISearchBar背景色颜色渐变

首先要实现颜色渐变我们可以使用CAGradientLayer

CAGradientLayer *gLayer = [CAGradientLayer layer];
    gLayer.colors = @[(__bridge id)UIColorFromRGB(0x00bcd4).CGColor,(__bridge id)UIColorFromRGB(0x00cc99).CGColor];
    gLayer.startPoint = CGPointMake(0, 0.5);
    gLayer.endPoint = CGPointMake(1, 0.5);
    gLayer.frame = CGRectMake(0, -20, SCREEN_WIDTH, 64);

获得到UISearchBar上的一个UIView,并加上gLayer

设置UISearchController的UISearchBar背景色颜色渐变_第1张图片
Snip20170516_3.png
[_searchVC.searchBar.subviews.firstObject.layer insertSublayer:gLayer atIndex:0];

显示依然不能显示出渐变颜色,查看UISearchBar内的图层可以看到有一个UIImageView,我们需要将这个UIImageView删除掉才能看到渐变色

    for (UIView *sview in _searchVC.searchBar.subviews.firstObject.subviews) {
        if ([sview isKindOfClass:[UIImageView class]]) {
            [sview removeFromSuperview];
        }
    }

ok,现在渐变色就显示出来了

设置UISearchController的UISearchBar背景色颜色渐变_第2张图片
Snip20170516_4.png

你可能感兴趣的:(设置UISearchController的UISearchBar背景色颜色渐变)