【问题标题】:UIToolbar shows different color on ios 5.0 and ios 6.0 SimulatorsUIToolbar 在 ios 5.0 和 ios 6.0 模拟器上显示不同的颜色
【发布时间】: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模拟器

标签: iphone ios uisearchbar uitoolbar uitoolbaritem


【解决方案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
      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 2012-04-19
      • 2012-10-13
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      相关资源
      最近更新 更多