Я установил UITapGestureRecognizer на представление. Только определенные области в представлении должны инициировать поведение представления. Я делаю это, проверяя, находится ли точное местоположение касания в реальных действительных областях в представлении. В тех случаях, когда касание не в этих областях, я хотел бы, чтобы кран распространялся вверх в иерархии представлений.Сделать UITapGestureRecognizer не использовать краны, которые не имеют отношения к виду
Я попытался использовать делегата жестов: shouldReceive touch и проверить там, если касание имеет отношение к виду, но я не могу выполнить действие там, так как оно срабатывает при касании, а не при нажатии. Я мог бы просто выполнить тест релевантности в shouldReceive, и только если вызываемый обработчик действия вызова вызван, выполните действие, но я нахожу его неудобным. Есть ли более элегантный способ сказать iOS, что мой распознаватель жестов решил не потреблять краны?
Вы можете поделиться некоторым связанным кодом? Являются ли _специфические области_, где должен быть активирован жест нажатия, вид другого типа по сравнению с другими? – ystack
На практике представление, над которым я работаю, это UITextView с атрибутомString, где только его части отмечены пользовательским действием. Поэтому в своем действии я сначала проверяю, коснется ли какой-либо из этих областей, а если нет, ничего не делайте (желательно, не используйте краны). – jazzgil
Woah! Если бы были задействованы множественные представления с использованием 'gestureRecognizer: shouldReceiveRouch', это был бы правильный путь. Но с атрибутами строк, для нетривиальных прецедентов, вы должны полагаться на Text Kit. Не смотря на какой-либо код, я могу только предложить изучить этот конкретный ответ, будет полезно: http://stackoverflow.com/a/28519273/3339346 – ystack