У меня есть FlagButton
, который расширяется UIButton
. Я добавил это к UITableCell
. При нажатии на кнопку я хочу изменить цвет фона, но только для кнопки в этой ячейке. В настоящее время это изменение цвета и для других ячеек.
class FlagButton: UIButton {
// ..
func initStyle() {
self.backgroundColor = UIColor.red
self.setTitle("foo", for: .normal)
self.setTitleColor(UIColor.black, for: .normal)
self.addTarget(self, action: #selector(touchDown), for: .touchDown)
}
@objc func touchDown() {
self.backgroundColor = UIColor.green
}
}
class PostViewCell: UITableViewCell {
var flagBtn: FlagButton?
override func awakeFromNib() {
super.awakeFromNib()
flagBtn = FlagButton(frame: CGRect(x: 0, y: 0, width: 30, height: 20))
guard let flagBtn = flagBtn else { return }
flagBtn.initStyle()
contentView.addSubview(flagBtn)
}
}
// ..
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = latestTableView.dequeueReusableCell(withIdentifier: "postCell", for: indexPath) as! PostViewCell
// ...
}