解决tableview点击cell反应延迟

不知道这是不是苹果的一个bug,当cell的selectionStyle设置为none的时候,点击cell present(我这里是present出的alertController)一个视图的时候,会有不同时间的延迟,有时三四秒,有时十几秒,很难受
解决方法1:
设置cell的selectionStyle为下边的任意一种

public enum UITableViewCellSelectionStyle : Int {
    case blue
    case gray
    @available(iOS 7.0, *)
    case `default`
}

但是我就是不想点击出现一个灰色或者蓝色的选中框,我还想点击不会延迟,网上有的说是这样, 在点击cell的方法里写上

    tableView.deselectRow(at: indexPath, animated: true)

我试了一下,并没有用,依然还是延迟,网上搜到的方法,基本都是这两种(在这里顺便喷一下,很多帖子,基本都直接复制一个人的,不管有没有用,千篇一律,很难受)
重点来了,解决方法,在点击cell方法里,这么写

DispatchQueue.main.async {[weak self] in
                //点击触发的操作
                self?.alertDetail(title: "选择性别", array: ["女", "男"], currentlabel: cell.detailLabel)
            }

这样,延迟什么的根本不存在
或者你觉得这样操作写在closure里边,不爽,那就直接这样

            //点击触发的操作
            alertDetail(title: "选择性别", array: ["女", "男"], currentlabel: cell.detailLabel)
            DispatchQueue.main.async {
                //这里边啥也不用写
            }

延迟什么的也就依然不存在了,猜想可能是present这个操作,苹果是默认在了一个子线程中执行的,至于为什么苹果这么干,那就不清楚了。

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

推荐阅读更多精彩内容

  • 点击tableView某一个cell会有延迟,有时延时4、5秒有时会延时8、9秒。如果点击第二下,就会立刻弹出。 ...
    Accepted_阅读 610评论 0 0
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,232评论 4 61
  • 问题描述:  当某个cell同时满足了以下三个条件(暂且给这个cell命名为cellX):1、cellX为第一个被...
    西叶lv阅读 1,528评论 2 3
  • 清风素雪傲霜寒,月晚泊舟渡紫烟。 亭坐独酌筹半夜,明灯照影醉心欢。 回读: 欢心醉影照灯明,夜半筹酌独坐亭。 烟紫...
    沙柳胡杨阅读 654评论 16 16
  • 致老婆的一封信: 人海茫茫,年青时你我就像是汪洋大海中飘零的两叶小舟,在寻寻觅觅中碰撞出爱的火花。当初我心底喑...
    褪遍阅读 480评论 0 0