我想在UISearchController中添加渐变不工作。

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.delegate = self;
self.definesPresentationContext = YES;
[self.searchController.searchBar setFrame:CGRectMake(0, 0, self.view.frame.size.width, 79)];
CAGradientLayer * grad = [CAGradientLayer layer];
grad.frame = self.searchController.searchBar.bounds;
grad.colors = @[(id)UIColorFromRGB(0x8daf00).CGColor,
(id)UIColorFromRGB(0xd1af03).CGColor];
[ self.searchController.searchBar.layer insertSublayer:grad atIndex:0];发布于 2016-09-30 20:08:05
问题已解决,请添加此字段并运行
[self.searchController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];发布于 2016-09-30 20:47:59
你需要设置背景暗淡到搜索栏。
gradient.locations = @[@0.0, @0.1];
[self.searchController.searchBar setBackgroundImage:[self imageFromLayer:gradient]];
- (UIImage *)imageFromLayer:(CALayer *)layer
{
UIGraphicsBeginImageContextWithOptions(layer.frame.size, NO, 0);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outputImage;
}https://stackoverflow.com/questions/39790746
复制相似问题