2015-01-26 5 views
0

У меня есть программно созданный UILabel, который использует автозапуск внутри UIView внутри UIScrollView. Сначала он выключен, а затем переходит на экран (путем оживления изменения констант ограничения автоопределения). Я пытаюсь добавить распознаватель жестов (однократное нажатие) к UILabel, но жест никогда не распознается. Если я добавлю его в UIView, распознаватель жеста работает. Кто-нибудь знает, каким будет решение этого? Это проблема, вызванная автозапуском? Спасибо.UIGestureRecognizer на UILabel внутри UIView внутри UIScrollview

EDIT

Это, безусловно, связано с Scrollview глотания прикосновений. Я только что создал тот же ярлык вне scrollview, и распознаватель жестов отлично работает!

EDIT 2 Я могу создать ярлык в представлении прокрутки с помощью Interface Builder, но программно это не работает ...

ответ

0

Оказалось, что метка была встроена в 2 вида, в пределах вида в прокрутке. Извлечение этого из этого, казалось, решало их проблему ...

1

Вы должны проверить User Interaction Enabled в UILabel

Если вы добавление UITapGestureRecognizer программно:

в viewDidLoad я добавил следующий код:

let gesture = UITapGestureRecognizer(target: self, action: Selector("myaction")) 
self.label.addGestureRecognizer(gesture) 

с селектором:

func myaction() { 
    println("Label tapped") 
} 

где self.label является ссылка на выходе этикетки прослушивают.

+0

Я включил его, все еще не работает – Tometoyou

+0

1. Вы создали IBAction от распознавателя жестов к viewController, чтобы проверить, работает ли он? 2. подключили ли вы ярлык и распознаватель жестов (т. Е. Правый щелчок gestureRecognizer показывает ссылочную розетку)? 3. Ваша иерархия взглядов - UIViewController> UIView> UIScrollView> UIView> UILabel? – asifmohd

+0

1. Нет, у меня нет, потому что все это программно создано. Но я знаю, что код работает, потому что я могу использовать его еще там, где он отлично работает. 2. Я знаю, что я правильно добавил распознаватель жестов на ярлык. 3. Моя иерархия представлений - UIViewController-> View-> View-> ScrollView-> View, а затем добавляет UILabel к этому представлению. (это немного сложно, так как у меня есть другие вещи) – Tometoyou