ในการจัดการท่าทางสัมผัสในแอปพลิเคชัน iOS เราจะสร้างแอปพลิเคชันที่มีความรวดเร็วและดูตัวอย่างด้วยความช่วยเหลือ ซึ่งสามารถทำได้สองวิธี ด้วยกระดานเรื่องราวหรือแบบเป็นโปรแกรม
วิธีที่ 1 − กับกระดานเรื่องราว
ขั้นแรก เราจะลากตัวจำแนกท่าทางการปัดจากไลบรารีวัตถุของเราแล้ววางลงในตัวควบคุมการดู ซึ่งเราต้องการเพิ่มท่าทางการปัด
จากนั้นคลิกที่ท่าทางสัมผัส กด control แล้วลากในคลาส view controller เพื่อสร้างการเชื่อมต่อ
ตรวจสอบให้แน่ใจว่าผู้ส่งการดำเนินการนั้นเป็น UISwipeGestureRecognizer และการดำเนินการมีลักษณะดังนี้:
@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) { }
ตอนนี้ท่าทางการปัดใน iOS จะให้ทิศทางของการปัดที่เกิดขึ้นภายในทิศทางของคุณสมบัติ ทิศทางคือ enum ซึ่งมีค่าที่เป็นไปได้เหล่านี้
- ขวา
- ซ้าย
- ลง
- ขึ้น
ท่าทางสัมผัสการปัดสามารถจัดการการปัดในทิศทางเดียวเท่านั้น ทั้งซ้าย ขวา ขึ้นหรือลง ดังนั้นเราจึงจำเป็นต้องสร้างตัวจดจำท่าทางการปัดอีกตัวหนึ่ง และจากตัวตรวจสอบแอตทริบิวต์ให้กำหนดทิศทางไปทางซ้าย
อย่าลืมเชื่อมโยงการทำงานของตัวจำแนกประเภทใหม่กับการดำเนินการสำหรับตัวจำแนกลายมือตัวแรกของเรา
ตอนนี้เราจะใช้วิธีนี้พร้อมกับคุณสมบัติทิศทางเพื่อจัดการกับการปัดนิ้ว นอกจากการทำจากสตอรีบอร์ดแล้ว เรายังทำแบบเป็นโปรแกรมได้อีกด้วย
วิธีที่ 2 - โดยทางโปรแกรม
ในการสร้างตัวจดจำท่าทางโดยทางโปรแกรม เราจะต้องเพิ่มโค้ดต่อไปนี้ใน viewDidLoad ของเรา
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)
ในทั้งสองวิธีในการดำเนินการนี้ การดำเนินการ swipeMade ที่แสดงด้านล่างควรยังคงเหมือนเดิม
@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) { if sender.direction == .left { print("left swipe made") } if sender.direction == .right { print("right swipe made") } }
เมื่อเราเรียกใช้แอปพลิเคชันนี้บนอุปกรณ์ของเรา เราจะไม่เห็นอินเทอร์เฟซใดๆ เนื่องจากมุมมองของเราว่างเปล่าในขณะนี้ แต่เมื่อเราปัดไปทางซ้ายหรือขวา เราได้ผลลัพธ์ในคอนโซลซึ่งแสดงว่ามีการปัดในทิศทางใดทิศทางหนึ่ง