У меня есть 20 + кнопок, и я хочу определить единый UILongPressGestureRecognizer для всех, возможно ли это?Как определить единый UILongPressGestureRecognizer для всех кнопок? В swift 3
До сих пор это не работает:
let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(handleLongGesture))
B_BTN_1.addGestureRecognizer(longPressGestureRecognizer)
B_BTN_2.addGestureRecognizer(longPressGestureRecognizer)
По какой-то причине, longPressGestureRecognizer работает только для "B_BTN_2".
Но, объявив жест распознаватель для каждого, это работает:
let longPressGestureRecognizer1 = UILongPressGestureRecognizer(target: self, action: #selector(handleLongGesture))
let longPressGestureRecognizer2 = UILongPressGestureRecognizer(target: self, action: #selector(handleLongGesture))
B_BTN_1.addGestureRecognizer(longPressGestureRecognizer1)
B_BTN_2.addGestureRecognizer(longPressGestureRecognizer2)
EDIT:
Если вы собираетесь использовать @ решение Андре, и имеет много кнопок, использовать это вместо того, чтобы предотвратить индексирование ошибка (занимает, как навсегда):
var buttons:[UIButton] = []
buttons.append(B_BTN_1)
buttons.append(B_BTN_2)
buttons.append(B_BTN_3)
.....
Всегда вам нужно создать новую ссылочную переменную типа UILongPressGestureRecognizer и присвоить ее представлениям. –