Как сделать несколько ярлыков интерактивными в ярлыке?

в моем коде у меня есть tableView и несколько меток. Я хочу, чтобы, когда пользователь щелкает ячейку, а после этого щелкает одну из меток, текст в метке будет таким же, как текст в строке, которую нужно щелкнуть.

Q1. Как сделать так, чтобы все метки были интерактивными и подключились к одной функции, которая будет указывать на конкретную метку каждый раз, когда пользователь нажимает на нее?

Q2. Я попытался сделать один и тот же жест для всех меток с помощью UITapGestureRecognizer .. очевидно, этот жест относится только к последней метке (Lbl4 здесь, в примере кода) .. это означает, что текст в Lbl1 в моей функции изменяется только при нажатии на Lbl4. . это почему? и как я могу изменить его, чтобы он относился ко всем ярлыкам?

override func viewDidLoad() {
    super.viewDidLoad()

    let aSelector : Selector = #selector(ViewController.lblTapped)
    let tapGesture = UITapGestureRecognizer(target: self, action: aSelector)
    tapGesture.numberOfTapsRequired = 1
    Lbl1.addGestureRecognizer(tapGesture)
    Lbl2.addGestureRecognizer(tapGesture)
    Lbl3.addGestureRecognizer(tapGesture)
    Lbl4.addGestureRecognizer(tapGesture)

}

func lblTapped(){
    Lbl1.text = self.currentPlayerChooseInRow

}

Спасибо за аванс ...


person r.pul    schedule 10.08.2016    source источник


Ответы (1)


Во-первых, вам нужно понять объект UITableView. UITableView - это массив ячеек, хорошо? Затем вам нужно использовать некоторые методы, связанные с UITableView, например numberOfRowsInSection (где приложение знает количество ячеек) и cellForRowAtIndexPath (где приложение знает, что ячейка будет)

По поводу ваших вопросов, рекомендую использовать розетки для подключения ярлыков, кнопок, предметов к контроллеру (старайтесь не использовать жесты, если в этом нет необходимости)

Наконец, ячейки объекта программируются в ячейку. Если у вас сложная ячейка, вам понадобится настраиваемый контроллер ячейки.

person Albert Gil Escura    schedule 10.08.2016
comment
сначала спасибо за ваш комментарий. мой tableview работает нормально, и у меня есть выход, который подключается ко всем ярлыкам. Мои вопросы касаются интерактивных и разрешающих действий для всех ярлыков, которые будут запускаться одним методом / функцией, если это возможно, и как этого добиться .. - person r.pul; 11.08.2016
comment
Ладно, хорошо. вам нужна ячейка контроллера в таблице yout и свяжите свою метку с розеткой в ​​контроллере UITableViewCell. вам не нужно создавать label1, label2, .... in viewdidload из вашего uitableviewcontroller. - person Albert Gil Escura; 11.08.2016