Добавить цель в UIButton внутри UITableViewCell - PullRequest
0 голосов
/ 28 января 2020

У меня UIButton внутри моего CustomTableViewCell, и я также вызываю addTarget:

let eyeButton: UIButton = {
    let v = UIButton()
    v.addTarget(self, action: #selector(eyeButtonTapped), for: .touchUpInside)
    v.setImage(UIImage(named: "eyeOpen"), for: .normal)
    v.translatesAutoresizingMaskIntoConstraints = false
    return v
}()

Однако эта функция не вызывается (также объявлена ​​внутри CustomTableViewCell):

@objc func eyeButtonTapped(){
    print("Hi")
}

Когда я нажимаю button, возникает "анимация касания", но ничего не происходит ..

Кто-нибудь знает, почему это происходит и как я могу это уместить?

Ответы [ 2 ]

2 голосов
/ 28 января 2020

При объявлении вашей кнопки self в этот момент не существует.

Либо добавьте цель в настройке забавы c, либо измените объявление на lazy var:

lazy var eyeButton: UIButton = {
    let v = UIButton()
    v.addTarget(self, action: #selector(eyeButtonTapped), for: .touchUpInside)
    v.setImage(UIImage(named: "eyeOpen"), for: .normal)
    v.translatesAutoresizingMaskIntoConstraints = false
    return v
}()
0 голосов
/ 30 января 2020

Создать имя выхода кнопки cellbuttonName или любой другой, чем написать этот код в tableviewdelegate cellForRowAtIndexPath

[self.cellbuttonName addTarget: self action:@selector (updateDate :) forControlEvents: UIControlEventTouchUpInside]; * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...