iOS之改變UIAlertViewController字型的顏色,uialertview字型顏色
NSString *message = @"請確認資訊是否正確?";NSString *title = @"提示";UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleActionSheet];//改變title的大小和顏色NSMutableAttributedString *titleAtt = [[NSMutableAttributedString alloc] initWithString:title];[titleAtt addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, title.length)];[titleAtt addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(0, title.length)];[alertController setValue:titleAtt forKey:@"attributedTitle"];//改變message的大小和顏色NSMutableAttributedString *messageAtt = [[NSMutableAttributedString alloc] initWithString:message];[messageAtt addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13] range:NSMakeRange(0, message.length)];[messageAtt addAttribute:NSForegroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(0, message.length)];[alertController setValue:messageAtt forKey:@"attributedMessage"]; [self presentViewController:alertController animated:YES completion:nil];
上面的是修改UIAlertViewController的title和message字型的大小和顏色,採用的是修改attributedString其中的NSForegroundColorAttributeName顏色屬性和NSFontAttributeName字型大小屬性。UIAlertViewController中的標題的key:@"attributedTitle",標題中提示資訊的key:@"attributedMessage"。
UIAlertAction *alertAction = [UIAlertAction actionWithTitle:@"知道了" style:UIAlertActionStyleDefault handler:nil];[alertAction setValue:[UIColor purpleColor] forKey:@"_titleTextColor"];// alertController.view.tintColor = [UIColor greenColor];[alertController addAction:alertAction];UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];/*取消按鈕的顏色*/[cancel setValue:[UIColor redColor] forKey:@"_titleTextColor"];[alertController addAction:cancel];
修改UIAlertViewController中修改所有按鈕的顏色使用下面這個方法:
alertController.view.tintColor = [UIColor greenColor];
修改單個UIAlertAction按鈕的字型顏色使用下面這個方法:
[cancel setValue:[UIColor redColor] forKey:@"_titleTextColor"];