自从iOS8以后,新出了一个UIAlertController使UIAlertView已经淡出程序猿的开发使用。
UIAlertController的使用更加的便捷,使用block使代码更加的紧凑和直观,但是想要修改UIAlertController中的标题、message的文字和大小的时候,只能使用KVC的方法来进行修改,闲话不说,直接上代码
- 修改标题文字颜色和大小
// 创建NSMutableAttributedString
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:self.title];
[str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:font == 15] range:NSMakeRange(0, message.length)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0, message.length)];
// 使用KVC设置标题文字:attributedTitle
[self setValue:str forKey:@"attributedTitle"];
- 修改message的文字颜色和大小
// 创建NSMutableAttributedString
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:self.title];
[str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:font == 15] range:NSMakeRange(0, title.length)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0, title.length)];
// 使用KVC设置message文字:attributedMessage
[self setValue:str forKey:@"attributedMessage"];
- 修改按钮的文字颜色,使用方法有两种,但是有一定的区别
- 方法一
UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];
// 设置按钮的文字颜色:titleTextColor
[action setValue:[UIColor yellowColor] forKey:@"titleTextColor"];
- 方法二
// 使用这个方法在点击按钮后,不做操作按钮的文字颜色会变回系统颜色,即为假象
alertController.view.tintColor = [UIColor blueColor];
- 给按钮添加图片,按钮图片只能放在文字的左边,具体还能不能放在右边或者设置按钮的背景图片还没设置成功,如果哪位大神可是的请告诉小白
UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];
UIImage *img = [UIImage imageNamed:buttonImage];
// 图片渲染模式 Original:始终绘制图片原始状态,不使用Tint Color
img = [img imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[action setValue:img forKey:@"image"];
- 点击跳转项目下载
- 最后附上测试图