首页 > 代码库 > UIAlertView、UIActionSheet兼容iOS8

UIAlertView、UIActionSheet兼容iOS8

1、前言

iOS8新增了UIAlertController来代替UIAlertView、UIActionSheet的使用。本文在不使用UIAlertController的情况下,用最简单的方法让UIAlertView、UIActionSheet兼容iOS8.

2、UIAlertView

iOS8下,如果UIAlertView初始化的时候title为nil的话,iOS8下面弹框中message会变成粗体,并且过于靠近顶部,为了保存跟iOS8之前的版本一致,只需要在初始化的时候将title置为@""就可以了。代码如下:
//title置为@""兼容iOS8
    UIAlertView *delAlert = [[[UIAlertView alloc] initWithTitle:@"" message:@"删除联系人?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确认", nil] autorelease];
    [delAlert show];

3、UIActionSheet

iOS8下,如果UIActionSheet初始化的时候title为@""的话,iOS8下面ActionSheet表单上方会多出一行空白栏,为了保存跟iOS8之前的版本一致,只需要在初始化的时候将title置为nil就可以了。代码如下:
UIActionSheet *actionSheet = [[[UIActionSheet alloc] initWithTitle:nil
                                                              delegate:self
                                                     cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
                                                destructiveButtonTitle:[NSString stringWithFormat:NSLocalizedString(@"call", nil),self.phoneNumber]
                                                     otherButtonTitles:NSLocalizedString(@"add to contact", nil),nil]
                                  autorelease];
    actionSheet.tag = 1;
    [actionSheet showInView:self.view];


UIAlertView、UIActionSheet兼容iOS8