我遇到了一个非常奇怪的问题。我有一个UISearchBar
酒吧,我希望它是黑色的。我已将界面生成器上的样式和色调设置为黑色,但它在 sim 和实际设备上显示为灰色。
当我将 Interface builder 上的色调颜色更改为其他任何颜色(即红色)时,如果效果很好。
试图放弃(从界面生成器中删除)并重新创建它,但没有。试图在我的代码上设置它。没有。
有任何想法吗?
我遇到了一个非常奇怪的问题。我有一个UISearchBar
酒吧,我希望它是黑色的。我已将界面生成器上的样式和色调设置为黑色,但它在 sim 和实际设备上显示为灰色。
当我将 Interface builder 上的色调颜色更改为其他任何颜色(即红色)时,如果效果很好。
试图放弃(从界面生成器中删除)并重新创建它,但没有。试图在我的代码上设置它。没有。
有任何想法吗?
您可以尝试这样,而不是在 xib 中更改色调颜色
searchBar.tintColor = [UIColor colorWithRed:0.0/255.0 green:0.0/255.0 blue:0/255.0 alpha:1.0]; //(RGB Values)
奇怪:我刚刚创建了搜索栏并通过代码将其色调更改为黑色(不使用 xib)。但它在我的模拟器和实际设备上运行良好。
CGColorRef topColor = [UIColor colorWithWhite:.4 alpha:1].CGColor;
CGColorRef bottomColor = [UIColor colorWithBlack].CGColor;
UISearchBar *search = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 41)];
CAGradientLayer *gradient = [CAGradientLayer layer];
[gradient setColors:[NSArray arrayWithObjects:(id)topColor,(id)bottomColor, nil]];
[gradient setLocations:[NSArray arrayWithObjects:[NSNumber numberWithFloat:0],[NSNumber numberWithFloat:1], nil]];
[gradient setFrame:search.bounds];
[[[search.subviews objectAtIndex:0] layer] addSublayer:gradient];
[self.view addSubview:search];
好的,这就是交易...我在同一个视图上有两个分段控件,颜色为深灰色。界面生成器似乎卡在了这种颜色上。
一旦我将段控制颜色更改为黑色并运行项目,搜索栏就会跟随段控制色调颜色。然后我将段控件的色调改回深灰色,一切正常!
我花了一天的时间来解决这个问题,这甚至不是我的错……无论如何都很好……
UIView *blackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 41)];
[blackView setBackgroundColor:[UIColor blackColor]];
UISearchBar *search = [[UISearchBar alloc] initWithFrame:blackView.bounds];
[[search.subviews objectAtIndex:0] removeFromSuperview];
[self.view addSubview:blackView];
[blackView addSubview:search];