首先要实现颜色渐变我们可以使用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
[_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,现在渐变色就显示出来了