UIAlertView 更改 UITabbar 项目选定的颜色
Posted
技术标签:
【中文标题】UIAlertView 更改 UITabbar 项目选定的颜色【英文标题】:UIAlertView changes UITabbar item selected color 【发布时间】:2014-05-08 07:54:47 【问题描述】:我的应用程序中有一个奇怪的问题:我有一个UIViewController
,当用户点击一个按钮时它会显示一个UIAlertView
。该警报让用户在照片库和 iPhone 相机之间进行选择。
当警报出现时,我注意到了这个问题:
首先,UIViewController
选中的标签栏项具有这种布局
然后,当警报出现时,它会变成这样
如果用户决定访问他的照片库,然后它返回,标签栏项目仍然是这样
这怎么可能?也许 UIAlertView 正在改变一些色调?
谢谢
【问题讨论】:
你为标签设置了什么 tintColor?还要检查 selectedImageTintColor @purrrminator 对于标签栏的色调颜色和 selectedImageTintColor 我使用了[[UITabBar appearance] setTintColor:[UIColor colorWithRed:96.0/255.0 green:194.0/255.0 blue:224.0/255.0 alpha:1.0]];
【参考方案1】:
我也遇到了这个问题,当某些视图在关闭 UIAlertView
后应该恢复正常颜色时,它们有时会保持暗淡。我相信这是 ios 7.0(或可能是 7.1)中的一个错误。我把这个解决方法放在我的AppDelegate
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
return YES;
这首先防止所有视图变暗,从而使您应用中的所有视图都保持变暗。
【讨论】:
完美运行!谢谢! 哦...拐杖。到处都是拐杖 如果您使用自定义UIView
子类,请确保按照下面的 Andrea’s 建议实现 tintColorDidChange
【参考方案2】:
您是否使用自定义 UIView 子类?以下是 Apple 在过渡指南中的说明。
当出现警报或操作表时,iOS 7 会自动调暗 为其后面的视图着色。为了响应这种颜色变化,一个 在其渲染中使用 tintColor 的自定义视图子类应该 覆盖 tintColorDidChange 以在适当的时候刷新渲染。
【讨论】:
【参考方案3】:我和你有同样的问题,但它发生在 UISlider 中。我解决了我的问题:只需为我的 UISlider 设置颜色。
progressSlider.maximumTrackTintColor = [UIColor lightGrayColor];
我想你只是为这个标签栏项目设置了颜色
如果您没有为标签栏项目设置颜色,则在显示警报后它将重置为 lightGrayColor
希望对你有帮助
【讨论】:
【参考方案4】:当我尝试在 viewDidLoad 中显示 UIAlertView 时,同样的事情发生在我身上。我通过在 viewDidAppear 中显示它来解决这个问题。您可以找到样本here https://github.com/Tulakshana/TabBar
【讨论】:
以上是关于UIAlertView 更改 UITabbar 项目选定的颜色的主要内容,如果未能解决你的问题,请参考以下文章
UITabBar项过多时如何自定义出现的UINavigationBar?