UIAlertView更改UITabbar项目选择的颜色

时间:2014-05-08 07:54:48

标签: ios objective-c ios7 uitabbaritem

我的应用程序中出现了一个奇怪的问题:当用户点击按钮时,我UIViewController会出现UIAlertView。警报让用户在照片库和iPhone相机之间进行选择。

当警报出现时,我注意到这个问题:

首先,UIViewController选定的标签栏项目具有此布局

selected tab bar item

然后,当警报出现时,它会像这样改变

selected tab bar item when alert is been shown

如果用户决定访问他的照片库然后返回,则标签栏项目仍然如下

selected tab bar after accessing the photo library

怎么可能?也许UIAlertView正在改变一些色调?

由于

4 个答案:

答案 0 :(得分:6)

我遇到了这个问题,当某些视图在解除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;
}

这样可以防止所有观看次数变暗,从而使您应用中的所有观看次数都保持暗淡。

答案 1 :(得分:2)

您使用的是自定义UIView子类吗?这是Apple在过渡指南中所说的内容。

  

当出现警报或操作表时,iOS 7会自动调暗   它背后的意见色彩。为了应对这种颜色变化,a   应该在渲染中使用tintColor的自定义视图子类   覆盖tintColorDidChange以在适当时刷新渲染。

答案 2 :(得分:0)

我遇到了同样的问题,但它发生在UISlider中。我解决了我的问题:只为我的UISlider设置颜色。

 progressSlider.maximumTrackTintColor = [UIColor lightGrayColor];

我认为您只需为此标签栏项目设置颜色

如果您没有为标签栏项目设置颜色,则会在显示警告后将其重置为lightGrayColor

希望这有助于你

答案 3 :(得分:0)

当我试图在viewDidLoad中显示UIAlertView时,发生了同样的事情。我通过在viewDidAppear中显示它来解决这个问题。您可以找到示例here https://github.com/Tulakshana/TabBar