Для определения нажатия на CALayer
можно использовать несколько подходов:
Использование hitTest(_:event:)
в представлении (View):
UIView
имеет метод hitTest(_:with:)
, который рекурсивно проходит по иерархии подпредставлений и возвращает самое глубокое подпредставление, содержащее заданную точку.hitTest(_:with:)
в пользовательском представлении для более детального контроля или для обработки нажатий непосредственно на подслоях, не связанных с представлениями.Преобразование координат с помощью convert
:
UIView
) у вас есть координаты касания относительно окна (UIWindow
) или представления.convert(_:from:)
или convert(_:to:)
CALayer
.bounds
) или использовать более специфические проверки, например, contains(_:)
.Прикрепление UITapGestureRecognizer
к представлению:
UITapGestureRecognizer
к UIView
, с которым связан слой.Создание UIView
для каждого интерактивного слоя:
UIView
.UIView
в соответствии со слоем.Для определения нажатия на CALayer
можно использовать несколько подходов:
Использование hitTest(_:event:)
в представлении (View):
UIView
имеет метод hitTest(_:with:)
, который рекурсивно проходит по иерархии подпредставлений и возвращает самое глубокое подпредставление, содержащее заданную точку.hitTest(_:with:)
в пользовательском представлении для более детального контроля или для обработки нажатий непосредственно на подслоях, не связанных с представлениями.Преобразование координат с помощью convert
:
UIView
) у вас есть координаты касания относительно окна (UIWindow
) или представления.convert(_:from:)
или convert(_:to:)
CALayer
.bounds
) или использовать более специфические проверки, например, contains(_:)
.Прикрепление UITapGestureRecognizer
к представлению:
UITapGestureRecognizer
к UIView
, с которым связан слой.Создание UIView
для каждого интерактивного слоя:
UIView
.UIView
в соответствии со слоем.Register or sign in to get access to full answers for all questions from the question bank.