Когда я нажимаю кнопку в пользовательской ячейке и затем прокручиваю вниз (или вверх), также постучивается другая кнопка ячейки. Я вижу, что он используется, потому что кнопка, которую я создал для кнопки, отключена.Значения повторяются при прокрутке в TableView
Мои cellForRowAtIndexPath
имеет 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
}
Любая помощь и предложения означают много.
спасибо.
REFRENCE ССЫЛКА Я использовал:
Я упомянул несколько ссылок, но они были в Objective-C и не помог:
UICollectionView Tap Selects More Than One Cell
How to use prepareForReuse method
Я также упомянул документы, и это мало помогло.
Добавить код UITableView Методы DataSource –
Где я запрашиваю и отправляю данные из таблицыView? Или из пользовательской ячейки? @HarikrishnanT – lukaivicev
. Методы источников данных в представлении таба включают в себя «cellForRowAtIndexPath», «numberOfCellsInTableView» и т. Д., Пожалуйста, напишите код 'cellForRowAtIndexPath' (и' willDisplayCell', если вы используете это тоже). Там должно быть что-то не так, что вы делаете там, что вызывает проблему. –