UIGestureRecognizer получает прикосновение, но также передает его в UIControl
Как бы вы позволили UIGestureRecognizer
из UIView
чтобы получить сенсорное событие, но также убедитесь, что другое, подложка / наложение UIView
также получает то же самое событие касания?
Допустим, у меня есть следующая точка зрения:
Представления A (синий) и B (красный) являются подпредставлениями одного и того же суперпредставления (серый). Другими словами, они оба братья и сестры, и порядок решает, какой из них покрывает другой.
Вариант 1: вид B (красный) имеет регулярный UIButton
как его подпредставление. Вариант 2: вид А (синий) имеет регулярный UIButton
как его подпредставление.
Данный вариант 1 ради пояснений: вид А (синий) имеет UITapGestureRecognizer
(или, может быть, даже больше, другие UIGestureRecognizer) прилагается. Что было бы наиболее элегантным подходом, чтобы убедиться, что UIButton
действительно получает все касания в своем регионе, но и вид A (синий) получает эти касания в своем регионе UITapGestureRecognizer
?
Если возможно каким-либо образом, решение не должно включать расширение UIButton
-класс и ручная пересылка любых событий от самой кнопки. Представьте себе, что представление B будет содержать гораздо больше элементов управления, а не просто кнопку. Все эти элементы управления должны как-то позволять представлению А получать прикосновения к его UIGestureRecognizer
,
Я предоставил два варианта, так как мне все равно, какой из этих видов (A или B) будет первым, если оба получат прикосновения.
Все мои подходы до сих пор внезапно зашли в тупик. Может быть, цепочка респондентов была бы хорошим решением? Я продолжаю думать, что должно быть элегантное решение во всем UIKit
/UIEvent
/UIResponder
стек.
1 ответ
Вы пробовали с этим?
cancellsTouchesInView Логическое значение, определяющее, доставляются ли касания в представление при распознавании жеста.
@property(nonatomic) BOOL cancelsTouchesInView