Вы можете сделать это несколькими способами.
Вы можете прикрепить жест, и если вы нажмете на определенную часть кадра, то сделайте одно.
func tapMethod(gesture:UITapGestureRecognizer) {
//on label
let touch = tap.locationInView(button)
If(label.frame.contains(touch)) {
//....
}
//not on label
Else {
/....
}
}
Или вы можете добавить 2 жеста касания, один на этикетке и один на кнопку, затем вы можете переопределить
func hitTest(_ point: CGPoint,
with event: UIEvent?) -> UIView?
Это позволит вам касаться подпредставлений кнопкипри необходимости также нажмите на кнопку действия при необходимости.Вот хороший пример.https://medium.com/@nguyenminhphuc/how-to-pass-ui-events-through-views-in-ios-c1be9ab1626b. Уменьшает связывание кода и позволяет объединять разные части.Это самый сложный маршрут, но, на мой взгляд, он дает наибольшее преимущество, обеспечивая простоту перемещения и потока кода