Ho un semplice UITableViewController con cella base. didSelectRowAtIndexPath fai un lavoro semplice: basta creare UIAlertView e mostrarlo.UITableViewCell risposta molto lenta su select
Il problema è quando tocco una riga a volte vedo l'avviso immediatamente, a volte dopo pochi secondi (fino a 10 secondi).
Il codice è
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as! UITableViewCell
cell.selectionStyle = UITableViewCellSelectionStyle.None
// Configure the cell...
cell.textLabel?.text = "\(indexPath.row)"
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
NSLog("row clicked at index \(indexPath.row)")
let alert = UIAlertView(title: "Test", message: "Test message", delegate: self, cancelButtonTitle: "Done")
alert.show()
NSLog("alert showed")
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
Nel registro vedo
2015-08-06 20:51:54.591 experimental[10323:8602172] row clicked at index 2
2015-08-06 20:51:54.595 experimental[10323:8602172] alert showed
2015-08-06 20:52:00.901 experimental[10323:8602172] row clicked at index 3
2015-08-06 20:52:00.905 experimental[10323:8602172] alert showed
ma in realtà avviso non mostra sullo schermo.
Qualsiasi suggerimento o indicazione in cui trovare una soluzione sarebbe apprezzato.
Il tuo codice funziona correttamente. –
Si dovrebbe verificare con gli strumenti. Questo codice sembra buono. – derdida
In realtà UIAlertView è deprecato. Usa UIAlertController. – stosha