gpt4 book ai didi

ios - 如何将计数按钮打印到标签上并永久保存? swift 3

转载 作者:行者123 更新时间:2023-11-30 12:14:01 26 4
gpt4 key购买 nike

我有一个按钮,当按下它时,它会计算按下的次数。问题是,一旦应用程序退出,数据就会丢失,此外,用户无法看到该按钮有多少次点击。

我的 Collection View 单元格上有一个标签,我想保存按钮已收到的点击次数(按钮也在我的 Collection View 单元格上)。我需要确保每个单元格不会将其单元格投票计数加载到同一按钮计数器。

我在我的应用上使用 Firebase,以防我需要将数据存储在 Firebase 中并将其回调。

下面是我的 Collection View 单元格,其中包含按钮和标签。

import UIKit
import Firebase


class PostCell: UICollectionViewCell {

@IBOutlet weak var postImage: UIImageView!
@IBOutlet weak var authorLabel: UILabel!
@IBOutlet weak var likeLabel: UILabel!


@IBOutlet weak var likeBtn: UIButton!
@IBOutlet weak var unlikeBtn: UIButton!


@IBOutlet weak var thisLabel: UILabel!
@IBOutlet weak var thisButton: UIButton!
@IBOutlet weak var thatLabel: UILabel!
@IBOutlet weak var thatButton: UIButton!

var counterThis = 0

var counterThat = 0
@IBAction func thisButtonTapped(_ sender: Any) {
counterThis += 1

}

@IBAction func thatButtonTapped(_ sender: Any) {
counterThat += 1

}

@IBOutlet weak var thisVoteCounter: UILabel!
@IBOutlet weak var thatVoteCounter: UILabel!

// @IBOutlet weak var thisVoteLabel: UILabel!
// @IBOutlet weak var thatVoteLabel: UILabel!

var postID: String!
var thisString = String()
var thatString = String()






override func awakeFromNib() {
super.awakeFromNib()
self.thisLabel.sizeToFit()
self.thisLabel.layoutIfNeeded()
self.thatLabel.sizeToFit()
self.thatLabel.layoutIfNeeded()



}
}

我需要一种方法来显示计数功能,确保数据保存并确保所有“ Collection View 单元格”按钮单击不会进入同一个计数按钮。

感谢任何和所有的帮助!!

更新:

import UIKit
import Firebase


class PostCell: UICollectionViewCell {

@IBOutlet weak var postImage: UIImageView!
@IBOutlet weak var authorLabel: UILabel!
@IBOutlet weak var likeLabel: UILabel!


@IBOutlet weak var likeBtn: UIButton!
@IBOutlet weak var unlikeBtn: UIButton!


@IBOutlet weak var thisLabel: UILabel!
@IBOutlet weak var thisButton: UIButton!
@IBOutlet weak var thatLabel: UILabel!
@IBOutlet weak var thatButton: UIButton!




var counterThis = 0

var counterThat = 0

var counterThisString = Int()

var counterThatString = Int()


cell.thisButtonCounter.addTarget(self, action: #selector(self.thisButtonTapped), for: .touchUpInside)

func thisButtonTapped(_ sender: UIButton) {
let point : CGPoint = (sender as AnyObject).convert(CGPoint.zero, to: postCell)
let indexPath = postCell!.indexPathForItem(at: point)
let cell = postCell!.cellForItem(at: indexPath!) as! PostCell
counterThis += 1
cell.thisLabel.text = "\(counterThis)"
}



/* @IBAction func thisButtonTapped(_ sender: Any) {
counterThis += 1
print(counterThis)

counterThis.int = counterThatString

return
}

@IBAction func thatButtonTapped(_ sender: Any) {
counterThat += 1

print(counterThat)

counterThat.int = counterThatString

return
}
*/

@IBOutlet weak var thisVoteCounter: UILabel!
@IBOutlet weak var thatVoteCounter: UILabel!

// @IBOutlet weak var thisVoteLabel: UILabel!
// @IBOutlet weak var thatVoteLabel: UILabel!

var postID: String!
var thisString = String()
var thatString = String()






override func awakeFromNib() {
super.awakeFromNib()
self.thisLabel.sizeToFit()
self.thisLabel.layoutIfNeeded()
self.thatLabel.sizeToFit()
self.thatLabel.layoutIfNeeded()



}
这是我现在的代码,我仍然没有弄清楚问题所在。您能否写出我需要添加哪些内容才能使代码正常工作?

非常感谢!!!

最佳答案

我知道我发布的内容不是与问题相关的答案,但在与@priM讨论后,他向我寻求另一个查询的帮助

您需要在cellForItemAt中添加目标

cell.btnCounter.addTarget(self, action: #selector(self.buttonClicked), for: .touchUpInside)

您可以使用以下命令捕获操作,并确保您需要更改操作方法内的标签文本。

func buttonClicked(_ sender: UIButton) {
let point : CGPoint = (sender as AnyObject).convert(CGPoint.zero, to: collectionView)
let indexPath = collectionView!.indexPathForItem(at: point)
let cell = collectionView!.cellForItem(at: indexPath!) as! ImageCollectionViewCell
counterThis += 1
cell.lblCellItemName.text = "\(counterThis)"
}

希望对你有帮助

关于ios - 如何将计数按钮打印到标签上并永久保存? swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651690/

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