Может ли распознаватель жестов касания в IB использоваться на UILabel и / или UIImageView - PullRequest
14 голосов
/ 15 ноября 2011

У меня есть xib с одним UIView, содержащим кучу изображений и ярлыков. Если я перетащу Распознаватель жестов касания в родительский вид, он будет работать хорошо, но мне нужно добавить код, чтобы определить положение касания, чтобы я мог правильно реагировать на метку, которую коснулись.

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

Я перетащил Распознаватель жестов на метку, затем подключил контроллер представления в качестве делегата TGR и применил метод IBAction для обработки касания. В дополнение к использованию метода IBAction я безуспешно пытался назначить метод назначения и действия в методе делегата gestRecognizerShouldBegin: gestRecognizer.

Разве это не должно работать, или я просто желаю подумать?

Спасибо за любую помощь.

John

1 Ответ

28 голосов
/ 15 ноября 2011

Для UIImages и UILabels, userInteractionEnabled по умолчанию установлено в NO. Вы можете использовать распознаватель жестов с ними обоими, но сначала вы должны сбросить это свойство.

В Интерфейсном Разработчике или Раскадровке на метке или изображении установите флажок для userInteractionEnabled.

Или, в коде, просто сделайте следующее (Objective-C):

myLabel.userInteractionEnabled = YES;
myImage.userInteractionEnabled = YES;

(Swift):

myLabel.userInteractionEnabled = true
myImage.userInteractionEnabled = true
...