Флажки, выбор действия

swift
ios

#1


Всем привет. Есть экран в нем есть три поля, дак вот нужно чтобы по тапу на это поле в квадрате появился флажок, и при этом появился алерт с вводом некоторых значений, допустим нажал на оплатить, появился алерт я ввел сумму закрыл и появился флажок.
Через что и как можно это сделать, использовать tableview или нет, какой контроллер использовать?


#2

Обычная таблица с label и image.
При клике просто меняете картинку.
В случае с оплатить, сперва вызываете AlertController, после определенного действия обновляете ячейку.


#3

var perehodObrabotki:[String] = Array()

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return perehodObrabotki.count
    
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell" /*"CheckListIdentifier"*/) as! CheckMarkCell
    cell.lblTitle.text = perehodObrabotki[indexPath.row]
    cell.selectionStyle = .none
    cell.textLabel?.text = perehodObrabotki[indexPath.row]
    cell.btnCheckMark.addTarget(self, action: #selector(checkMarkButtonClicked(sender:)), for: .touchUpInside)
    return cell
    
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 71.0
}


@objc func checkMarkButtonClicked ( sender: UIButton) {
    print("check")

    if sender.isSelected {
        //снять
        
        sender.isSelected = false

    } else {
        // поставить
        sender.isSelected = true
    }
}

override func viewDidLoad() {
    super.viewDidLoad()
    
    perehodObrabotki.append("работа сдана заказчику")
    perehodObrabotki.append("смена мастер кода")
    perehodObrabotki.append("получил деньги от заказчика")
    perehodObrabotki.append("списание/пересорт")
    perehodObrabotki.append("результат диагностики")
    perehodObrabotki.append("обработать заявку вручную")
    obrabotkaList.register(UINib.init(nibName: "CheckMarkCell", bundle: nil), forCellReuseIdentifier: "Cell")//"CheckListIdentifier")
    obrabotkaList.dataSource = self
    obrabotkaList.delegate = self
}

вот так я ставлю свои флажки, есть проблема, как сделать так чтобы флажок ставился не только по нажатию на сам Check, а ставился при нажатии на всю строку


#4

tableView(didSelectRowAt) - тут вы получите индекс нажатой ячейки, по индексу вытащите ячейку и обновите у нее свой элемент


#5


что может быть


#6

без понятия, по ощущениям наложилась вторая таблица поверх первой с пробелом в начале значений


#7

Нашел ошибку, исправил))


#8

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView.cellForRow(at: indexPath)?
вот так как то?


#9

да (_______________)