点击cell弹出UIAlertController延迟的解决方法

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];
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容