本文介绍了UITableView 的问题:动作只能每隔一次工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的 UITableViewController 有问题:表格视图显示出来,但 didDeselectRowAt 将仅在触摸单元格时每第二次调用一次.有人看到此代码有问题吗?
I have an issue with the UITableViewController: the table view shows up but didDeselectRowAt will be called only every second time when touching a cell. Does anyone see an issue with this code?
import UIKit
import MediaPlayer
class LibraryTableViewController: UITableViewController{
let mediaItems = MPMediaQuery.songs().items
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return mediaItems!.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = mediaItems?[indexPath.row].title
return cell
}
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
print("table item selected")
OperationQueue.main.addOperation{
self.performSegue(withIdentifier: "showPlayer", sender: self)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showPlayer"{
let playerVC = segue.destination as! PlayerViewController
let indexPath = tableView.indexPathForSelectedRow!
playerVC.mediaItem = mediaItems?[indexPath.row]
}
}
}
推荐答案
将 didDeselectRowAt 更改为 didSelectRowAt
Change didDeselectRowAt to didSelectRowAt
这篇关于UITableView 的问题:动作只能每隔一次工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!