У меня есть tableView
с пользовательской ячейкой. в моем обычном cell
У меня есть кнопка. монетой Баттона я написал функцию, чтобы изменить состояние от .normal
к .selected
так:iOS swift UIButton в TableView Cell
FeedViewCell
class FeedViewCell: UITableViewCell {
@IBOutlet weak var likeButton: UIButton!
var likes : Bool {
get {
return UserDefaults.standard.bool(forKey: "likes")
}
set {
UserDefaults.standard.set(newValue, forKey: "likes")
}
}
override func awakeFromNib() {
super.awakeFromNib()
self.likeButton.setImage(UIImage(named: "like-btn-active"), for: .selected)
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
@IBAction func likeBtnTouch(_ sender: AnyObject) {
print("press")
// toggle the likes state
self.likes = !self.likeButton.isSelected
// set the likes button accordingly
self.likeButton.isSelected = self.likes
}
}
FeedViewController:
class FeedViewController: UIViewController {
@IBOutlet var feedTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Register Cell Identifier
let feedNib = UINib(nibName: "FeedViewCell", bundle: nil)
self.feedTableView.register(feedNib, forCellReuseIdentifier: "FeedCell")
}
func numberOfSectionsInTableView(_ tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.feeds.count
}
func tableView(_ tableView: UITableView, heightForRowAtIndexPath indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "FeedCell", for: indexPath) as! FeedViewCell
return cell
}
}
Но моя проблема в том, когда я нажимаю кнопку в ячейке с как indexPath.row 0
Состояние кнопки в ячейке indexPath.row 3
изменить состояние тоже.
где моя ошибка?
благодарит
Пожалуйста, добавьте больше кода. Как вы связываете '@ IBAction' с кнопкой? – Adeel
дорогой @Adeel У меня есть файл xib и подключайте '@ IBAction' к кнопке с контролем + перетащить – MohammadReza
На самом деле ваш вопрос непонятен, поэтому трудно понять, что здесь может быть неправильным. Я бы предложил вам добавить еще код вашего 'viewController' и' FeedViewCell'. – Adeel