0

我为我的 UIToolBar 设置了 tintcolor。它在 ios 6.0 中正确显示,但在 ios 5.0 模拟器上显示为黑色。我的代码在这里

originalBounds = mysearchBarBarItem.customView.bounds;
mySearchBar.bounds = CGRectMake(0,0,215,44);
myTopToolbar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:NAVIGATION_BAR_BACKGROUND]];
myTopToolbar.barStyle = UIBarStyleDefault;

mySearchBar.barStyle = UIBarStyleDefault;
mySearchBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:NAVIGATION_BAR_BACKGROUND]];

[myTopToolbar setItems:toolBarItemsArray animated:YES];
4

5 回答 5

2

您可以使用UIAppearance(适用于 iOS 5.0 及更高版本)。

于 2012-12-31T07:43:45.293 回答
2

我不知道这是否会有所作为,但您可以尝试更改分配条形样式和颜色的顺序。尝试:

myTopToolbar.barStyle = UIBarStyleDefault;   
myTopToolbar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:NAVIGATION_BAR_BACKGROUND]];

更改 tintcolor 后分配样式可能会重置颜色。

编辑

为什么这只会影响 ios5 而不会影响 ios6 我不知道。

于 2012-12-31T07:39:26.337 回答
1

尝试在您的应用程序委托实现类中执行此操作,这将更改整个应用程序的工具栏和搜索栏颜色

用于设置搜索栏的色调

[[UISearchBar appearance] setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:NAVIGATION_BAR_BACKGROUND]]];

或者

[[UISearchBar appearance] setTintColor:[UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1]];

用于设置工具栏的色调

[[UIToolbar appearance] setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:NAVIGATION_BAR_BACKGROUND]];

或者

[[UIToolbar appearance] setTintColor:[UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1]];

用于设置背景图像

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"bgtoolbar.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
于 2012-12-31T07:44:37.710 回答
1

尝试设置颜色属性

myTopToolbar.tintColor = [UIColor redColor]; 

如果这在 iOS6 和 iOS5 中都可以正常工作,那么问题应该出在图像中。

编辑 检查这个问题

iphone:UIToolbar 设置为 tint color 在 iOS 5 和 ios6 模拟器上的行为不同?

于 2012-12-31T07:41:50.847 回答
0

我已经解决了。刚刚将图像转换为 RGB 值并像这样设置。

myTopToolbar.tintColor = [UIColor colorWithRed:139/256.0 green:0/256.0 blue:0/256.0 alpha:1.0];
于 2012-12-31T08:55:37.660 回答