不知道这是不是苹果的一个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这个操作,苹果是默认在了一个子线程中执行的,至于为什么苹果这么干,那就不清楚了。