美文网首页
【swift】 UIAlertController在cell弹出

【swift】 UIAlertController在cell弹出

作者: Kean_Qi | 来源:发表于2018-05-18 19:01 被阅读71次

    在点击tableview上的一个cell后弹出alert,会发现有延迟的问题,或者点击没有反应,随便再点击一下才会弹出。

    swift: cell.selectionStyle = .none;
    iOS: cell.selectionStyle = UITableViewCellSelectionStyleNone;
    时才会出现。

    主要原因

    点击事件发生后没有处理UI变动,或者加到其他线程中了,主线程经过一次(或多次)循环后才发现此需要刷新UI,然后才会刷新UI。

    解决办法以下两种:

    1.不要设置为UITableViewCellSelectionStyleNone,在点击事件中用` [tableView deselectRowAtIndexPath:indexPath animated:YES];去除选中效果即可
    2.将alertController添加到主线程
    iOS:

    dispatch_async(dispatch_get_main_queue(), ^{        
        [self presentViewController: alertController animated:YES completion:nil];
        });
    

    swift:

    DispatchQueue.main.asyncAfter(deadline: .now()) {[weak self] in
              self?.present(alertController, animated: true, completion: nil)
    })
    

    相关文章

      网友评论

          本文标题:【swift】 UIAlertController在cell弹出

          本文链接:https://www.haomeiwen.com/subject/emhndftx.html