func setTextColor(color: UIColor) {
var count: uint = 0;
let ivars = class_copyIvarList(UIAlertAction.classForCoder(), &count)
for i in 0 ..< Int(count) {
let ivar = ivars[i]
let name = ivar_getName(ivar)
if let varName = String.fromCString(name) {
if varName == "_titleTextColor" {
self.setValue(color, forKey: "titleTextColor")
}
}
}
}
}
extension UIAlertController {
func setTitleColor(color: UIColor) {
var count: uint = 0;
let ivars = class_copyIvarList(UIAlertAction.classForCoder(), &count)
for i in 0 ..< Int(count) {
let ivar = ivars[i]
let name = ivar_getName(ivar)
if let varName = String.fromCString(name) {
if varName == "_attributedTitle" {
self.setValue(color, forKey: "attributedTitle")
}
}
}
}
func setMessageColor(color: UIColor) {
var count: uint = 0;
let ivars = class_copyIvarList(UIAlertAction.classForCoder(), &count)
for i in 0 ..< Int(count) {
let ivar = ivars[i]
let name = ivar_getName(ivar)
if let varName = String.fromCString(name) {
if varName == "_attributedMessage" {
self.setValue(color, forKey: "attributedMessage")
}
}
}
}
func show() {
let alert = Alert(alertController: self)
Alert.showViewCtrl(self)
AlertManager.defaultManager().addAlert(alert)
}
}
用法:
- (void)alertStartDownloadOnWWAN:(void(^)())blockDownload {
if (self.netWorkState.netWorkStatus != NetworkViaWiFi && self.netWorkState.netWorkStatus != NetworkNone) {
NSString *message = NSLocalizedString(@"2G/3G/4G下载将消耗您的数据流量,是否继续?", nil);
NSString *cancel = NSLocalizedString(@"继续下载", nil);
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:message preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *actionDownload = [UIAlertAction actionWithTitle:cancel style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
if (blockDownload != nil) {
blockDownload();
}
}];
[actionDownload setTextColor:[UIColor blueColor]];
UIAlertAction *actionNotDownload = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
}];
[actionNotDownload setTextColor:[UIColor blueColor]];
[alertController addAction:actionDownload];
[alertController addAction:actionNotDownload];
[alertController show];
} else if (blockDownload != nil){
blockDownload();
}
}