不知道這是不是蘋果的一個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這個操作,蘋果是默認在了一個子線程中執行的,至于為什么蘋果這么干,那就不清楚了。