项目需求,点击cell的时候,弹出alert提醒用户,代码写完之后,测试发现alert总是要延迟出现,要么就是点击cell不弹出,然后再点击屏幕的任意位置才弹出,首先想到的是这部分的UI刷新没有到主线程去执行,或者是没有立即去执行这部分操作,网上查了资料,解决方案如下
1.如果你设置取消了cell的选中效果,不要设置为UITableViewCellSelectionStyleNone,在点击事件中用
[tableView deselectRowAtIndexPath:indexPath animated:YES];
2.把alert弹出放到主线程
//把弹出代码放到主线程
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController:alert animated:YES completion:nil];
});