【发布时间】:2016-09-06 13:02:55
【问题描述】:
我正在尝试使用自定义集合视图单元格创建集合视图。
我想跟踪每个单元格被点击的次数并存储在一个数组中。所以,我的自定义单元格有一个标签、IBAction 和一个数组。
我可以通过将 1 附加到 IBAction 内的数组并打印出计数来做到这一点。
但是,我想在自定义单元格视图类之外访问这些数据。我想要一个特定于每个单元格的数组,即名称
self.titleLabel.text!
当然,我不能使用变量作为数组的名称! (我希望我能)
在这种情况下如何存储数据?
我需要在哪里以及如何定义数组以轻松存储和处理数据?
【问题讨论】:
-
1) 为什么不能使用变量名作为数组名称?你绝对可以。您可以将属性与其他任何东西一样用于数组。 2)您的自定义单元子类不应持有该数组。单元格应该负责显示数据,您的模型或视图控制器应该负责像您的数组一样保存数据。让您的 viewController 处理点击次数并在您的
didSelect委托方法中增加它。 -
感谢您的洞察力。在基于 MVC 模型的自定义单元之外保存数组当然是有意义的。但是,我不知道该怎么做。 1) 我尝试使用 > self.titleLabel.text 在自定义单元格中创建一个数组!但是 swift 会抛出错误 2)另外,当有多个单元格时,我们如何访问自定义单元格之外的标签。我不能使用“self”关键字如果你能提供一些代码会很有帮助。
-
要回答这个问题,您需要发布您尝试将其添加到自定义单元格的代码。然后我们可以调试那个 Swift 代码。有可能,你的 Swift 代码可能有点问题
-
KDRearrangeableCollectionViewCell.swift 中添加的代码
@IBAction func buttonPressed(sender: UIButton) { print("This is \(self.titleLabel.text!) button!!! It works!!!!") buttonCount.append(1) print("\(self.titleLabel.text!) has been recorded \(buttonCount.count) times") dump(tapCounts) } var buttonCount = [Int]() func handleTap(sender: UITapGestureRecognizer) { print("Button \(self.titleLabel.text!) has been tapped!!!") }
标签: ios arrays swift uicollectionview uicollectionviewcell