gpt4 book ai didi

ios - 自动关闭 UIAlertView 后导航栏色调颜色发生变化

转载 作者:行者123 更新时间:2023-11-28 22:15:50 25 4
gpt4 key购买 nike

我已经编写了自定义 UIAlertview 以允许在某些情况下自动关闭。现在,在 iOS 7 中,当自动关闭发生时,我的导航栏的色调会发生变化。根据 iOS7 过渡指南:

https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/TransitionGuide.pdf

当出现警告或操作表时,iOS 7 会自动调暗其背后 View 的色调。为了响应这种颜色变化,在其渲染中使用 tintColor 的自定义 View 子类应该覆盖 tintColorDidChange 以在适当的时候刷新渲染。

不知道这是否可以仅在自定义 UIAlertView 中处理。下面是我的自定义 UIAlertView 代码:

#define kStartupFailAlert 203

#import "RunnerUIAlertView.h"

@implementation RunnerUIAlertView

- (id)init {
self = [super init];

if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(removeAlert) name:kRemoveVisibleAlert object:nil];
}

return self;
}


- (void)removeAlert {
if (self.tag != kStartupFailAlert) { // If not kRunnerStartupFailAlert - as it will be auto dismissed
self.delegate = nil;
NSInteger aCancelButtonIndex = [self cancelButtonIndex];
[super dismissWithClickedButtonIndex:aCancelButtonIndex animated:NO];
}
}


- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

@end

最佳答案

通过恢复应用委托(delegate)窗口的色调设置解决了这个问题。但是它有这样的副作用,即在打开弹出窗口或工作表时不会使导航色调颜色变暗。这似乎是 iOS7 SDK 的问题。

- (void)removeAlert {
if (self.tag != kStartupFailAlert) { // If not kRunnerStartupFailAlert - as it will be auto dismissed
self.delegate = nil;
NSInteger aCancelButtonIndex = [self cancelButtonIndex];
[self dismissWithClickedButtonIndex:aCancelButtonIndex animated:NO];

MyAppDelegate *appDeletgate = [Utilities applicationDelegate];
appDeletgate.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
}
}

关于ios - 自动关闭 UIAlertView 后导航栏色调颜色发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com