Bạn có thể tạo một tiện ích mở rộng chung trên chế độ xem để thêm nhận dạng cử chỉ dễ dàng. Đây chỉ là một ví dụ nhưng nó có thể trông như thế này
extension UIView {
func setGestureRecognizer<Gesture: UIGestureRecognizer>(of type: Gesture.Type, target: Any, actionSelector: Selector, swipeDirection: UISwipeGestureRecognizer.Direction? = nil, numOfTaps: Int = 1) {
let getRecognizer = type.init(target: target, action: actionSelector)
switch getRecognizer {
case let swipeGesture as UISwipeGestureRecognizer:
guard let direction = swipeDirection else { return }
swipeGesture.direction = direction
self.addGestureRecognizer(swipeGesture)
case let tapGesture as UITapGestureRecognizer:
tapGesture.numberOfTapsRequired = numOfTaps
self.addGestureRecognizer(tapGesture)
default:
self.addGestureRecognizer(getRecognizer)
}
}
}
Để thêm trình nhận dạng 2 chạm vào chế độ xem, bạn chỉ cần gọi:
let actionSelector = #selector(actionToExecute)
view.setGestureRecognizer(of: UITapGestureRecognizer.self, target: self, actionSelector: actionSelector, numOfTaps: 2)
Bạn cũng có thể dễ dàng thêm một công cụ nhận dạng vuốt
view.setGestureRecognizer(of: UISwipeGestureRecognizer.self, target: self, actionSelector: actionSelector, swipeDirection: .down)
và như thế. Chỉ cần nhớ rằng mục tiêu phải được liên kết với bộ chọn.