在開發(fā)中,彈出框是必不可少的窃页,通常情況下跺株,我們只要彈出系統(tǒng)自帶的彈出框就可以。but脖卖,在某些情況下乒省,萬惡的UI會(huì)要求你修改顯示文字的大小、顏色畦木,雖然系統(tǒng)自帶有一種紅色字體的UIAlertAction袖扛,但是這種Action并不能放在Cancel位置,所以,更多時(shí)候蛆封,需要我們自己修改文字字體和顏色唇礁。
我采用的方法是KVC:
正常情況下,我們配置出來的UIAlertController是這樣的:
或者是這樣:
代碼如下:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"提示內(nèi)容" preferredStyle:UIAlertControllerStyleAlert];
// UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"提示內(nèi)容" preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"Default" style:UIAlertActionStyleDefault handler:nil];
UIAlertAction *destructiveAction = [UIAlertAction actionWithTitle:@"Destructive" style:UIAlertActionStyleDestructive handler:nil];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
[alertController addAction:defaultAction];
[alertController addAction:destructiveAction];
[alertController addAction:cancelAction];
[self presentViewController:alertController animated:YES completion:nil];
代碼里展示了系統(tǒng)提供的三種UIAlertAction惨篱,現(xiàn)在我們要對(duì)文字的字體和顏色進(jìn)行設(shè)置:
- 1.標(biāo)題和提示內(nèi)容的文字設(shè)置
代碼如下:
//修改title
NSMutableAttributedString *alertControllerStr = [[NSMutableAttributedString alloc] initWithString:@"提示"];
[alertControllerStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 2)];
[alertControllerStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:17] range:NSMakeRange(0, 2)];
[alertController setValue:alertControllerStr forKey:@"attributedTitle"];
//修改message
NSMutableAttributedString *alertControllerMessageStr = [[NSMutableAttributedString alloc] initWithString:@"提示內(nèi)容"];
[alertControllerMessageStr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(0, 4)];
[alertControllerMessageStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20] range:NSMakeRange(0, 4)];
[alertController setValue:alertControllerMessageStr forKey:@"attributedMessage"];
效果如下:
- 2.設(shè)置按鈕文字盏筐,就拿取消按鈕距離:
代碼如下:
//修改按鈕
if (cancelAction valueForKey:@"titleTextColor") {
[cancelAction setValue:[UIColor redColor] forKey:@"titleTextColor"];
}
效果如下:
至于里面的key值怎么得到的,過兩天會(huì)寫一篇文章來講述砸讳。