J'ai un bouton qui quand il est pressé il compte combien de fois il est pressé. Le problème est que dès que l'application quitte les données sont perdues, en outre, l'utilisateur n'a aucun moyen de voir combien de clics le bouton a.Comment imprimer un bouton de décompte sur une étiquette et l'enregistrer pour toujours? Swift 3
J'ai une étiquette sur ma Collection View Cell que je veux contenir le nombre de taps que le bouton a reçu (bouton est également sur ma collection View Cell). Je dois m'assurer que chaque cellule ne charge pas le nombre de votes de ses cellules dans le même compteur de boutons. J'utilise Firebase sur mon application, au cas où je devrais stocker les données dans Firebase et les rappeler.
Ci-dessous ma collection Voir Cellule avec le bouton et l'étiquette à l'intérieur.
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()
}
}
je besoin d'un moyen d'afficher la fonction de comptage, assurez-vous que les données sauvegarde et assurez-vous que tous les clics de bouton Afficher la collection Cells ne vont pas dans le même bouton de comptage.
Toute aide est appréciée !!
MISE À JOUR:
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()
}
Merci beaucoup!
Avez-vous besoin d'enregistrer des données ou simplement quelque peu? –
Maintenant, j'essaie juste de faire en sorte que ma fonction thisButtonTapped imprime les comptes qu'elle contient dans une étiquette sur la même cellule. Je n'ai pas besoin de l'enregistrer encore – priM
vous pouvez facilement faire cela par cellForItem déléguer la méthode –