在我的应用程序中,我需要一个公共函数/公共变量,在其中我需要知道所选单元格的indexPath
。自从我是一个新的编码器以来,我对如何实现有了一些想法,但是都没有一个有用的想法。
我只希望可以从类中的任何地方访问选定的indexPath。所以我需要一些建议/帮助。
func selectedColor(){
let cell = gamePad.dequeueReusableCell(withReuseIdentifier: "coloredCell", for: IndexPath) as! UICollectionViewCell
let selectedCell = gamePad.indexPathForItem(at: CGPoint)
}
答案 0 :(得分:0)
我同意DávidPásztor的意见,但第一次会为您提供帮助。您需要UITableView的实现委托。我认为它将是这样的:
class TableViewController: UIViewController {
@IBOutlet var tableView: UITableView!
var selectedIndexPath: IndexPath?
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
}
}
extension TableViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
selectedIndexPath = indexPath
}
}
P.S。对于UICollectionView,它是相同的,但是您需要实现UICollectionViewDelegate并如下所示:
class ViewController: UIViewController {
@IBOutlet var collectionView: UICollectionView!
var selectedIndexPath: IndexPath?
override func viewDidLoad() {
super.viewDidLoad()
collectionView.delegate = self
}
}
extension ViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
selectedIndexPath = indexPath
}
}
P.S。如果您不需要知道何时轻按单元格的时间,则可以使用indexPathForSelectedRow(@rmaddy)
答案 1 :(得分:-1)
indexPathsForSelectedItems
on UICollectionView
https://developer.apple.com/documentation/uikit/uicollectionview/1618099-indexpathsforselecteditems