Ios UISearchBar将半透明设置为无颜色';行不通

Ios UISearchBar将半透明设置为无颜色';行不通,ios,uitableview,uisearchbar,Ios,Uitableview,Uisearchbar,(我知道这似乎是重复的,但我告诉你们我在这里发现的一切都不管用) 我有一个带有搜索显示控制器和搜索栏的UITableView,我正在尝试根据公司颜色设置tintColor。但无论我怎么尝试,它都是半透明的 以下是示例代码: [self.searchDisplayController.searchBar setTranslucent:NO]; [self.searchDisplayController.searchBar setBarTintColor:[[ConfToolbox sharedIn

(我知道这似乎是重复的,但我告诉你们我在这里发现的一切都不管用)

我有一个带有搜索显示控制器和搜索栏的UITableView,我正在尝试根据公司颜色设置tintColor。但无论我怎么尝试,它都是半透明的

以下是示例代码:

[self.searchDisplayController.searchBar setTranslucent:NO];
[self.searchDisplayController.searchBar setBarTintColor:[[ConfToolbox sharedInstance] getBarTintColor]];
[[ConfToolbox sharedInstance]getBarTintColor]
返回深蓝色
UIColor

我环顾四周寻找答案,但什么都没用,甚至没有

任何帮助都会很好

干杯

阿玉。

像这样试试

    self.searchBar.frame = CGRectMake(self.searchBar.frame.origin.x, self.searchBar.frame.origin.y+7, self.searchBar.frame.size.width, 30);
    self.searchBar.placeholder = @"Search...";
    self.searchBar.layer.cornerRadius = 15;
    self.searchBar.layer.backgroundColor = [UIColor redColor].CGColor;
    self.searchBar.layer.borderWidth=8;
    [[NSClassFromString(@"UISearchBarTextField") appearanceWhenContainedIn:[UISearchBar class], nil] setBorderStyle:UITextBorderStyleNone];
    self.searchBar.layer.borderColor=[UIColor redColor].CGColor;
试着这样,

    self.searchBar.frame = CGRectMake(self.searchBar.frame.origin.x, self.searchBar.frame.origin.y+7, self.searchBar.frame.size.width, 30);
    self.searchBar.placeholder = @"Search...";
    self.searchBar.layer.cornerRadius = 15;
    self.searchBar.layer.backgroundColor = [UIColor redColor].CGColor;
    self.searchBar.layer.borderWidth=8;
    [[NSClassFromString(@"UISearchBarTextField") appearanceWhenContainedIn:[UISearchBar class], nil] setBorderStyle:UITextBorderStyleNone];
    self.searchBar.layer.borderColor=[UIColor redColor].CGColor;

我用这个实现了我想要的,以防有人面临同样的问题:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(10,10), YES, 0);
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [[ConfToolbox sharedInstance] barTintColor].CGColor);
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0,0,10,10));
UIImage* coloredImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.searchDisplayController.searchBar setBackgroundImage:coloredImage forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
您可以使用所需的任何颜色设置
CGContextSetFillColorWithColor
的第二个参数

默认值为“是”。如果搜索栏有自定义背景 如果图像的任何像素具有alpha值,则默认值为YES 小于1.0,且无其他情况


由于图像是由alpha值为1的颜色生成的,因此半透明效果将如前所述关闭。

我使用此功能实现了我想要的效果,以防有人面临同样的问题:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(10,10), YES, 0);
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [[ConfToolbox sharedInstance] barTintColor].CGColor);
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0,0,10,10));
UIImage* coloredImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.searchDisplayController.searchBar setBackgroundImage:coloredImage forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
您可以使用所需的任何颜色设置
CGContextSetFillColorWithColor
的第二个参数

默认值为“是”。如果搜索栏有自定义背景 如果图像的任何像素具有alpha值,则默认值为YES 小于1.0,且无其他情况


由于图像是由alpha值为1的颜色生成的,因此半透明效果如前所述已关闭。

这只是在搜索栏周围添加了一种不透明的红色边框,它本身并没有改变搜索栏的色调。这只是在搜索栏周围添加了一种不透明的红色边框,它没有改变搜索栏本身的颜色