Swift 4: у меня есть статическая ячейка (сгруппированный стиль). Я просто добавляю в ячейку UILabel и UIStepper. Теперь я хотел бы изменить текст UILabel, когда я нажимаю UIStepper. Как на картинке:
Вот мои коды:
if indexPath.section == 0 {
cell.textLabel?.text = "\(first[indexPath.row])"
let step = UIStepper()
let label = UILabel()
func labelValueChanged(sender:UIStepper!) {
label.text = "\(Int(step.value))"
}
cell.addSubview(step)
step.translatesAutoresizingMaskIntoConstraints = false
step.centerYAnchor.constraint(equalTo: cell.centerYAnchor).isActive = true
step.widthAnchor.constraint(equalToConstant: 94).isActive = true
step.heightAnchor.constraint(equalToConstant: 29).isActive = true
step.rightAnchor.constraint(equalTo: cell.rightAnchor, constant: -30).isActive = true
step.addTarget(self, action: #selector(labelValueChanged), for: .valueChanged)
cell.addSubview(label)
label.text = "0"
label.translatesAutoresizingMaskIntoConstraints = false
label.centerYAnchor.constraint(equalTo: cell.centerYAnchor).isActive = true
label.widthAnchor.constraint(equalToConstant: 50).isActive = true
label.heightAnchor.constraint(equalToConstant: 21).isActive = true
label.rightAnchor.constraint(equalTo: cell.rightAnchor, constant: -124).isActive = true
}
Будет ошибка, если внутри ячейки была добавлена функция labelValueChanged: Argument of '#selector' cannot refer to local function 'labelValueChanged(sender:)'
Но если функция labelValueChanged была добавлена вне ячейки, метка и значение UIStepper будут недоступны.
Есть ли способ сделать это? Мы ценим любые предложения. Спасибо.