在開發中,彈出框是必不可少的,通常情況下,我們只要彈出系統自帶的彈出框就可以。but,在某些情況下,萬惡的UI會要求你修改顯示文字的大小、顏色,雖然系統自帶有一種紅色字體的UIAlertAction,但是這種Action并不能放在Cancel位置,所以,更多時候,需要我們自己修改文字字體和顏色。我采用的方法是KVC:正常情況下,我們配置出來的UIAlertController是這樣的:
123.png或者是這樣:
345.png代碼如下:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"提示內容" PReferredStyle:UIAlertControllerStyleAlert];// UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"提示內容" 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];代碼里展示了系統提供的三種UIAlertAction,現在我們要對文字的字體和顏色進行設置:
1.標題和提示內容的文字設置代碼如下://修改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)]; if (alertController valueForKey:@"attributedTitle") { [alertController setValue:alertControllerStr forKey:@"attributedTitle"]; } //修改message NSMutableAttributedString *alertControllerMessageStr = [[NSMutableAttributedString alloc] initWithString:@"提示內容"]; [alertControllerMessageStr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(0, 4)]; [alertControllerMessageStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20] range:NSMakeRange(0, 4)]; if (alertController valueForKey:@"attributedMessage") { [alertController setValue:alertControllerMessageStr forKey:@"attributedMessage"]; }效果如下:
123.png2.設置按鈕文字,就拿取消按鈕距離:代碼如下: //修改按鈕 if (cancelAction valueForKey:@"titleTextColor") { [cancelAction setValue:[UIColor redColor] forKey:@"titleTextColor"]; }效果如下:
新聞熱點
疑難解答