Как добавить uiStepper в uitableviewcell?

В моем приложении у меня есть пользовательский UITableViewCell, и у меня есть UIStepper и UILabel в пользовательской ячейке. Я не знаю, как проверить, какой степпер был нажат. Так это способ узнать, из какой ячейки степпер был нажат? Я использую свифт 3.

я пробовал это

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let data = ["111111", "2222222","3333333"]

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return(data.count)
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{

   let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
    cell.lb1.text = data[indexPath.row]
    cell.stepper.tag = indexPath.row
    cell.stepper.addTarget(self, action: #selector(stepperA(sender:)), for: .valueChanged)
    return (cell)

}
func stepperA (sender: UIStepper){


    print("stepper \(sender.tag) clicked. Its value \(sender.value)")
}











override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

person ss.5    schedule 02.03.2017    source источник


Ответы (1)


Вы можете использовать теги. Вот пример cellForRowAt и ваша функция шагового действия.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: StepperTableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! StepperTableViewCell

    //stepper is your UIStepper reference from StepperTableViewCell
    cell.stepper.tag = indexPath.row
    cell.stepper.addTarget(self, action: #selector(stepperAction(sender:)), for: .valueChanged)

    return cell
}
func stepperAction(sender: UIStepper)  {
    print("Stepper \(sender.tag) clicked. Its value \(sender.value)")
}

И его вывод

Stepper 0 clicked. Its value 1.0
Stepper 1 clicked. Its value 1.0
Stepper 0 clicked. Its value 2.0
Stepper 0 clicked. Its value 3.0
Stepper 3 clicked. Its value 1.0
person theduman    schedule 02.03.2017
comment
спасибо, я новичок в Swift, и я добавил свой код в свой вопрос, но он не работает - person ss.5; 05.03.2017
comment
Приложение закрывается, когда я нажимаю на Stepper, можете ли вы сделать простое приложение и дать мне его с открытым исходным кодом, чтобы я мог проверить, где я ошибаюсь? - person ss.5; 06.03.2017