修改UIAlertAction 的文字颜色

extension UIAlertAction {
   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();

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值