Computer >> Máy Tính >  >> Lập trình >> IOS

Làm thế nào để xử lý các cử chỉ vuốt từ phải sang trái và từ trái sang phải trên Ứng dụng iOS?


Để xử lý các cử chỉ trong ứng dụng iOS, chúng tôi sẽ tạo một ứng dụng nhanh chóng và xem với sự trợ giúp của một ví dụ. Điều này có thể được thực hiện theo hai cách, với bảng phân cảnh hoặc theo chương trình.

Phương pháp 1 - Với bảng phân cảnh

Đầu tiên, chúng tôi sẽ kéo một trình nhận dạng cử chỉ vuốt từ thư viện đối tượng của chúng tôi và thả nó vào bộ điều khiển Chế độ xem mà chúng tôi muốn thêm cử chỉ vuốt.

Sau đó nhấp vào cử chỉ, nhấn điều khiển và kéo trong lớp bộ điều khiển chế độ xem của bạn để tạo kết nối.

Đảm bảo rằng người gửi hành động đó là UISwipeGestureRecognizer và hành động trông giống như sau:

@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) { }

Giờ đây, cử chỉ vuốt trong iOS cung cấp hướng vuốt được thực hiện bên trong hướng thuộc tính của nó. Hướng là một enum có các giá trị khả dĩ này.

  • Đúng
  • Còn lại
  • Xuống chỗ
  • Lên

Cử chỉ vuốt chỉ có thể xử lý thao tác vuốt chỉ theo một hướng, sang trái, phải, lên hoặc xuống. Vì vậy, chúng tôi cần tạo một trình nhận dạng cử chỉ vuốt khác và từ trình kiểm tra thuộc tính, thiết lập hướng của nó sang trái.

Ngoài ra, hãy nhớ kết nối hành động của trình nhận dạng mới với hành động của trình nhận dạng đầu tiên của chúng tôi.

Bây giờ chúng tôi sẽ sử dụng phương pháp này cùng với thuộc tính hướng để xử lý các lần vuốt được thực hiện. Ngoài việc thực hiện nó từ bảng phân cảnh, chúng tôi cũng có thể thực hiện nó theo chương trình.

Phương pháp 2 - Theo chương trình

Để tạo trình nhận dạng cử chỉ theo chương trình, chúng tôi sẽ phải thêm mã sau vào viewDidLoad của mình.

var leftRecognizer = UISwipeGestureRecognizer(target: self, action:
#selector(swipeMade(_:)))
   leftRecognizer.direction = .left
var rightRecognizer = UISwipeGestureRecognizer(target: self, action:
#selector(swipeMade(_:)))
   rightRecognizer.direction = .right
   self.view.addGestureRecognizer(leftRecognizer)
   self.view.addGestureRecognizer(rightRecognizer)

Trong cả hai phương pháp để thực hiện việc này, hành động vuốtMade được hiển thị bên dưới sẽ được giữ nguyên.

@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) {
   if sender.direction == .left {
      print("left swipe made")
   }
   if sender.direction == .right {
      print("right swipe made")
   }
}

Khi chúng tôi chạy ứng dụng này trên thiết bị của mình, chúng tôi không thấy bất kỳ giao diện nào vì chế độ xem của chúng tôi trống tại thời điểm này nhưng khi chúng tôi vuốt sang trái hoặc phải, chúng tôi nhận được đầu ra trong bảng điều khiển cho thấy rằng một lần vuốt đã được thực hiện theo một trong hai hướng.

Làm thế nào để xử lý các cử chỉ vuốt từ phải sang trái và từ trái sang phải trên Ứng dụng iOS?