gpt4 book ai didi

swift - 如何获取 UICollectionView 中每个选定单元格的按钮标题?

转载 作者:行者123 更新时间:2023-11-28 14:16:16 25 4
gpt4 key购买 nike

我有一个按钮的 collectionView,如下图所示。我希望能够选择多个这样的单元格,并在这样做时将每个选定按钮的标题传递到一个字符串数组中。

UICollectionView - each cell has a button with a title

UICollectionView 在 WordViewController 类中

class WordViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout

并且 UICollectionViewCell 在它自己的文件中。

import UIKit

class WordCollectionViewCell: UICollectionViewCell {

@IBOutlet weak var wordView: UIButton!

@IBAction func buttonTapped(_ sender: UIButton) {
if wordView.isSelected == true {
wordView.isSelected = false
wordView.backgroundColor = UIColor.blue
}else {
wordView.isSelected = true
wordView.backgroundColor = UIColor.green
}
}

}

我是 Swift 的新手,几天来我一直在努力寻找这个问题的答案,但我想不通。我怀疑我可能必须使用 indexPathsForSelectedItems 但我已经尝试过但无法正常工作。

func indexSelected () {
let collectionView = self.collectionView
let indexPath = collectionView?.indexPathsForSelectedItems?.first
print(indexPath!)
let cell = collectionView?.cellForItem(at: indexPath!) as? WordCollectionViewCell
let data = cell?.wordView.currentTitle
print(data!)

}

我不确定我设置 CollectionView 的方式是否存在根本性错误,或者是否与我在 CollectionViewCells 中使用按钮有关。

任何帮助将不胜感激。

最佳答案

这是您可以做到的一种方式。首先获取所选单元格的 indexPaths。然后遍历 indexPaths 并为每个 IndexPath 获取您的单元格(将它们转换为您的自定义 CollectionViewCell 以访问您的按钮)。现在您可以将每个标题附加到一个数组中以保存它们。

var titleArray = [String]()

guard let selectedIndexPaths = collectionView.indexPathsForSelectedItems else { return }

for indexPath in selectedIndexPaths {
if let cell = collectionView.cellForItem(at: indexPath) as? WordCollectionViewCell {
self.titleArray.append(cell.yourButton.titleLabel?.text)
}
}

关于swift - 如何获取 UICollectionView 中每个选定单元格的按钮标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52156504/

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