gpt4 book ai didi

ios - UITableView 和 UICollectionView 上的 Swift didSelectRowAt 不起作用

转载 作者:行者123 更新时间:2023-11-30 11:31:06 25 4
gpt4 key购买 nike

我在我的ViewController中创建了tableViewcollectionView,并将委托(delegate)和数据源设置为我的ViewController扩展或包含该类。

单元格已经在它们两个上正确显示,我的类中没有任何 UITapGestureRecognizer 但当我想点击我的单元格时 didSelectRowAt code> 未调用。

我添加了 canEditRowAt 并且它可以工作,但不适用于 didSelectRowAt

This is my CollectionView

This is my TableView with edit action and it works

This is my ViewController Scene

我的 TableView 已设置:

- UserInteractionEnable = true 
- Selection = Single Selection

我的 Xib 文件:

- UserInteractionEnable = true 

这是我的课:

class ProfileVC: UIViewController {

@IBOutlet weak var profileTableView: UITableView!

var profileTitle = DataService.instance.profileTitle

override func viewDidLoad() {
super.viewDidLoad()
configureTableView()
}

func configureTableView() {
let nib = UINib(nibName: "ProfileCell", bundle: nil)
profileTableView.register(nib, forCellReuseIdentifier: "ProfileCell")
profileTableView.delegate = self
profileTableView.dataSource = self
profileTableView.allowsSelection = true
}

}

extension ProfileVC: UITableViewDelegate, UITableViewDataSource {

func numberOfSections(in tableView: UITableView) -> Int {
return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return profileTitle.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "ProfileCell", for: indexPath) as? ProfileCell else { return ProfileCell() }
cell.configureCell(withTitle: profileTitle[indexPath.row])
return cell
}


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Selected")
}

}

这是我的 ProfileCellClass:

class ProfileCell: UITableViewCell {

@IBOutlet weak var titleLabel: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}

func configureCell(withTitle title: String){
self.titleLabel.text = title
}
}

This my .xib file details

谢谢。

最佳答案

如果您的表格 View 处于编辑模式,例如

tableView.setEditing(true, animated: false)

您需要设置

tableView.allowsSelectionDuringEditing = true

关于ios - UITableView 和 UICollectionView 上的 Swift didSelectRowAt 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50250946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com