我目前正在使用http://kwigbo.com/post/318396305/iphone-sdk-custom-uialertview-background-color作为我的自定义UIAlertView。一切正常,但我正在尝试更改标题和消息文本颜色,我想更改按钮颜色。有没有办法做到这一点?我尝试过使用:
UILabel *theTitle = [AlertView valueForKey:@"_titleLabel"];
[theTitle setTextColor:[UIColor redColor]];
但我无法让它发挥作用。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
您只需在UIAlertViewDelegate
文件中加入.h
,并在.m
文件中覆盖此方法。
-(void)willPresentAlertView:(UIAlertView *)alertView{
UILabel *theTitle = [alertView valueForKey:@"_titleLabel"];
theTitle.font = [UIFont fontWithName:@"Copperplate" size:18];
[theTitle setTextColor:[UIColor whiteColor]];
UILabel *theBody = [alertView valueForKey:@"_bodyTextLabel"];
theBody.font = [UIFont fontWithName:@"Copperplate" size:15];
[theBody setTextColor:[UIColor whiteColor]];
}
答案 1 :(得分:0)
检查setTextColor是否已被删除。
我以为是
theTitle.text.color = [UIColor redColor];
或者您可以使用
[theTitle.text setColor:[UIColor redColor]];
第二个不完全肯定,第一个例子应该可以做到这一点。
答案 2 :(得分:0)
默认情况下,您无法更改警报视图标题和消息,但借助附件视图,您可以实现此功能。 尝试以下方法:
-(void)customAlertTitle:(NSString*)title message:(NSString*)message{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:nil delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 80)];
UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 270, 50)];
titleLabel.text = title;
titleLabel.font = [UIFont boldSystemFontOfSize:20];
titleLabel.numberOfLines = 2;
titleLabel.textColor = [UIColor redColor];
titleLabel.textAlignment = NSTextAlignmentCenter;
[subView addSubview:titleLabel];
UILabel *messageLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 30, 270, 50)];
messageLabel.text = message;
messageLabel.font = [UIFont systemFontOfSize:18];
messageLabel.numberOfLines = 2;
messageLabel.textColor = [UIColor redColor];
messageLabel.textAlignment = NSTextAlignmentCenter;
[subView addSubview:messageLabel];
[alertView setValue:subView forKey:@"accessoryView"];
[alertView show];
}
以上代码在最新的XCode 8.3.1上运行良好。如果遇到任何问题,请发表评论。