iOS8提供了UIAlertController控件,用起来真是方便,特别是对选择项的点击事件可以直接在其block里面执行,不用像之前的在其委托对象中处理了。但是有的时候你也许会碰到这一场景,你的个人头像是放在cell里面的,为了扩大头像的点击范围,选择了点击cell即可调查选择照片或拍照的选项(这里肯定会首选UIAlertController来实现了),发现选择弹出框老是会有延迟弹出的情况,有的时候不明显,有的时候比较明显,如果你碰到了这一场景原则就在于你对cell的selectionStyle设置成了UITableViewCellSelectionStyleNone,影响了弹出框的响应时间.
方法1:
只要将其改成:UITableViewCellSelectionStyleDefault即可。
方法2
在主线程更新UI:
UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *deleteAction = [UIAlertAction actionWithTitle:@"删除" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
[alert addAction:deleteAction];
[alert addAction:cancelAction];
/**< 主线程更新UI,不然会出现延迟弹窗 */
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf presentViewController:alert animated:YES completion:nil];
});