UIToolbar 在 ios 5.0 和 ios 6.0 模拟器上显示不同的颜色
Posted
技术标签:
【中文标题】UIToolbar 在 ios 5.0 和 ios 6.0 模拟器上显示不同的颜色【英文标题】:UIToolbar shows different color on ios 5.0 and ios 6.0 Simulators 【发布时间】:2012-12-31 07:23:14 【问题描述】:我为我的 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];
【问题讨论】:
你在设备中检查过这个吗? 我已经在真正的 iOS 6.0 硬件中检查过了。它显示正确。我没有iOS 5.0真机测试,我测试过iOS 5.0模拟器 【参考方案1】:我不知道这是否会有所不同,但您可以尝试更改分配条形样式和颜色的顺序。试试:
myTopToolbar.barStyle = UIBarStyleDefault;
myTopToolbar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:NAVIGATION_BAR_BACKGROUND]];
更改 tintcolor 后分配样式可能会重置颜色。
编辑
我不知道为什么这只会影响 ios5 而不会影响 ios6。
【讨论】:
【参考方案2】:您可以使用UIAppearance
(适用于 iOS 5.0 及更高版本)。
【讨论】:
【参考方案3】:尝试设置颜色属性
myTopToolbar.tintColor = [UIColor redColor];
如果这在 iOS6 和 iOS5 中都能正常工作,那么问题应该出在图像上。
已编辑 检查这个问题
iphone:UIToolbar when set to tint color behaves differently on iOS 5 and ios6 simulator?
【讨论】:
你可以在iOS5设备上查看。我希望你不会在设备中遇到任何问题 你在设备中检查了这个 没有 ios 5.0 设备可以查看。 我认为它不会在设备中产生任何问题。 顺便说一句,我在导航栏上使用相同的图像。它在两者上都正确显示。所以我认为图像没有问题。【参考方案4】:尝试在您的应用委托实现类中执行此操作,这将更改整个应用程序中的工具栏和搜索栏颜色
用于设置搜索栏的色调
[[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];
【讨论】:
这很奇怪请试试这个 [[UISearchBar 外观] setTintColor:[UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1]];和 [[UIToolbar 外观] setTintColor:[UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1]]; 那行得通。有一个非常浅的黑色。但它改变了整个应用程序中工具栏的颜色。 是的,如果您在应用程序委托中使用它,它将改变整个应用程序的收费栏颜色,如果您希望任何 viewController 中的特定工具栏发生更改,那么在您的那个 viewController 中进行操作【参考方案5】:我已经解决了。只是将图像转换为 RGB 值并像这样设置。
myTopToolbar.tintColor = [UIColor colorWithRed:139/256.0 green:0/256.0 blue:0/256.0 alpha:1.0];
【讨论】:
你应该除以 255.0以上是关于UIToolbar 在 ios 5.0 和 ios 6.0 模拟器上显示不同的颜色的主要内容,如果未能解决你的问题,请参考以下文章