2016-05-12 4 views
4

Я пытаюсь добавить UITapGesture в ячейку collectionView, но каждый раз, когда я делаю сбой приложений, я пытаюсь добавить . (Все IBOutlets подключены) Это что-то, что я делаю неправильно здесь?Добавить жест нажатия на UIStackView

let fGuesture = UITapGestureRecognizer(target: self, action: #selector(self.showF(_:))) 
cell.fstackView.addGestureRecognizer(fGuesture) 

func showF(sender: AnyObject){ 
     print(111) 
    } 
+1

на '#selector (изменение self.'' self' к ваше имя класса –

+0

Покажите нам, как выглядит ваш сбой (вывод консоли). – osxdirk

+0

Если вы используете Swift 4, вам нужно @objc на showF. Кроме того, showF должен включать _ для параметра. –

ответ

3

есть вид стека, разрешенный для прикосновения? добавьте это, если нет.

cell.fstackView.isUserInteractonEnabled = true 
0

Если приложение происходит сбой из-за fatal error: unexpectedly found nil while unwrapping an Optional value - вам может понадобиться, чтобы добавить некоторую задержку перед добавлением жест распознаватель к представлению стека.

Если вы получаете доступ к свойству представления стека в элементе подкласса ячеек коллекции коллекций или в методах делегирования представления коллекции, представление стека, возможно, еще не было инициализировано. Попробуйте с помощью таймера или НОД добавить 0,1 секунды задержки, и она должна работать нормально ...

Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(prepareStackView), userInfo: nil, repeats: false) 

...

@objc func prepareStackView() { 
    let tap = UITapGestureRecognizer(target: self, action: #selector(stackViewTapped)) 
    myStackView.addGestureRecognizer(tap) 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^