之前看到很多通过-(void)willPresentAlertView:(UIAlertView *)alertView来修改alertView的subview的代码,但是在iOS7以上的系统没有作用,查了很久的资料也没有说明,有想过自己重写一个,但是后来在csdn闪下到一段代码http://download.csdn.net/download/folish_audi/7543541,和自己之前写的相结合一下,就都支持了。
NSString *content = @"1、增加白菜党等特色标签筛选\n2、增加频道热度排行\n3、增加夜间模式\n4、Material design风格优化\n5、滑动返回优化\n6、其他bug修复"};
NSString *message = [[NSStringalloc] initWithFormat:@"发现新版本1.1,是否更新?\n本次更新内容:\n%@", content];
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"立即更新"message:message
delegate:self
cancelButtonTitle:@"暂不更新"
otherButtonTitles:@"立即更新",nil];
//如果你的系统大于等于7.0
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
{
CGSize size = [messagesizeWithFont:[UIFontsystemFontOfSize:15]constrainedToSize:CGSizeMake(240,400) lineBreakMode:NSLineBreakByTruncatingTail];
UILabel *textLabel = [[UILabelalloc] initWithFrame:CGRectMake(0, -20,240, size.height)];
textLabel.font = [UIFontsystemFontOfSize:15];
textLabel.textColor = [UIColorblackColor];
textLabel.backgroundColor = [UIColorclearColor];
textLabel.lineBreakMode =NSLineBreakByWordWrapping;
textLabel.numberOfLines =0;
textLabel.textAlignment =NSTextAlignmentLeft;
textLabel.text = message;
[alertsetValue:textLabel forKey:@"accessoryView"];
alert.message =@"";
}else{
NSInteger count = 0;
for( UIView * viewin alert.subviews )
{
if( [view isKindOfClass:[UILabelclass]] )
{
count ++;
if ( count == 2 ) { //仅对message左对齐
UILabel* label = (UILabel*) view;
label.textAlignment =NSTextAlignmentLeft;
}
}
}
}
[alertshow];