首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchController添加CAGradientLayer

UISearchController添加CAGradientLayer
EN

Stack Overflow用户
提问于 2016-09-30 19:42:17
回答 2查看 133关注 0票数 0

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

代码语言:javascript
复制
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];
EN

回答 2

Stack Overflow用户

发布于 2016-09-30 20:08:05

问题已解决,请添加此字段并运行

代码语言:javascript
复制
[self.searchController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];
票数 0
EN

Stack Overflow用户

发布于 2016-09-30 20:47:59

你需要设置背景暗淡到搜索栏。

代码语言:javascript
复制
  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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39790746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档