Ở bài này mình sẽ giới thiệu về UITapGesture, một gesture cơ bản nhất trong iOS. UITapGesture đuợc sử dụng để bắt sự kiện tap lên một UIView bất kì trong iOS.
Cũng như các UIControl có hai cách để khởi tạo và bắt sự kiện cho UITapGesture là kéo thả và sử dụng code thuần.
1. Tạo UITapGesture bằng kéo thả
Các bạn tạo một project kéo một UIImageView vào Main.storyboard, chúng ta sẽ thêm UITapGesture cho UIImageView. Ngoài ra các bạn thêm hai tấm hình bất kì để hiển thị trên UIImageView.
Lưu ý: trước khi thêm Gesture cho bất kì UIControl nào các bạn nhớ vào Interaction chọn User Interaction Enabled để có thể bắt được sự kiện tương tác trên UIControl nếu không Gesture sẽ không hoạt động.

Để thêm UITapGesture vào UIImageView các bạn vào Library và kéo UITapGesture thả vào UIImageView:

Sau khi kéo thả UITapGesture các bạn sẽ nhìn thấy biểu tượng của UITapGesture trong ViewController:

Tiếp theo chúng ta sẽ ánh xạ Action cho UITapGesture và Outlet cho UIImageView, chọn vào UITapGesture và thực hiện như với các UIControl khác. Ngoài ra các bạn có thể ánh xạ Outlet cho UITapGesture nếu muốn tuỳ chỉnh các thuộc tính bằng code.

Các bạn vào Action của UITapGesture để thực code thay đổi hình ảnh của UIImageView:
Đoạn code trên sẽ thay đổi hình ảnh của UIImageView mỗi khi chúng ta chạm vào:

2. Tạo UITapGesture bằng code
Các bạn tham khảo đoạn code tạo UITapGesture và thêm UITapGesture cho UIImageView:
Kết quả chạy đoạn code trên cũng tương tự như ở phần trước hình ảnh sẽ được thay đổi mỗi khi chúng ta chạm vào.

Cảm ơn bạn đã theo dõi bài viết, nếu có thắc mắc gì vui lòng để lại bình luận bên dưới.
Bạn có thể tham khảo khoá học lập trình iOS tại laptrinh0kho.com. Các khoá học từ cơ bản đến nâng cao, được thực tập doanh nghiệp. Bạn sẽ được cung cấp kiến thức có hệ thống với đội ngũ giảng viên giàu kinh thực tế và am hiểu sư phạm. Hãy liên hệ ngay để được tư vấn miễn phí theo thông tin bên dưới:
LAPTRINH0KHO.COM
- 138/36 Nguyễn Xí, P. 26, Q. Bình Thạnh, TP.HCM
- Hotline: 0347.750.760 (Kết bạn Zalo để tư vấn)
- Email: laptrinh0kho@gmail.com
- Website: www.laptrinh0kho.com
- FanPage : laptrinh0kho.com