カスタム セルのボタンをタップしてから下 (または上) にスクロールすると、別のセル ボタンもタップされます。ボタン用に作成したボタンアウトレットが無効になっているため、タップされていることがわかります。
MycellForRowAtIndexPath
には、セルの reuseIdentifier があります。
var cell: FeedTableViewCell? = tableView.dequeueReusableCellWithIdentifier("MusicCell") as? FeedTableViewCell
私が持っていることを考えると、degueueReusableCellWithId
私cellForRowAtIndexPath
は必要prepareForReuse
ですか?カスタム セル ファイルに を追加するprepareForReuse
と、セルはデフォルト値に戻ります (明らかに、デフォルト値にリセットしたためです)。問題は、各 indexPath.row の値を保持することです。
これは私が値を照会する方法です:
override func queryForTable() -> PFQuery {
var query:PFQuery = PFQuery(className:"Music")
if(objects?.count == 0)
{
query.cachePolicy = PFCachePolicy.CacheThenNetwork
}
query.orderByAscending("videoId")
return query
}
これはnumberOfRowsInSection
、cellForRowAtIndexPath
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return objects!.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
var cell: FeedTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? FeedTableViewCell
if(cell == nil) {
cell = NSBundle.mainBundle().loadNibNamed("FeedTableViewCell", owner: self, options: nil)[0] as? FeedTableViewCell
}
if let pfObject = object {
//I took out the irrelevant methods. I can add them if that makes a difference...
var votes:Int? = pfObject["votes"] as? Int
if votes == nil {
votes = 0
}
cell?.votesLabel?.text = "\(votes!)"
}
viewDidLoad
これを上記の super.viewDidLoad()に登録しています
tableView.registerNib(UINib(nibName: "FeedTableViewCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
これは、customCell のボタン クエリです。
@IBAction func heartButton(sender: AnyObject) {
if(parseObject != nil) {
if var votes:Int? = parseObject!.objectForKey("votes") as? Int {
votes!++
parseObject!.setObject(votes!, forKey: "votes")
parseObject!.saveInBackground()
votesLabel?.text = "\(votes!)"
}
}
heartOutlet.enabled = false
}
どんな助けや提案も大きな意味があります。
ありがとうございました。
私が使用した参照リンク:
いくつかのリンクを参照しましたが、それらはobjective-cにあり、役に立ちませんでした:
ドキュメントも参照しましたが、あまり役に立ちませんでした。