[iOS Dev] Moving Object with UIPanGestureRecognizer

ใครเปิดอันนี้ขึ้นมาก่อน ถ้าเป็นไปได้ อยากให้กลับไปอ่าน Entry ก่อนหน้าก่อนนะครับ
เกี่ยวกับ TapGesture เพราะผมเขียนอธิบายการทำงานเบื้องต้นไว้ Entry นี้ผมจะไปเร็วหน่อย

http://www.macbaszii.com/2012/06/ios-dev-working-with.html

อ่ะ เริ่มนะครับ เมื่อ Entry ที่แล้วเรากล่าวถึงการ Tap มาคราวนี้เราจะพูดถึงการ Pan ครับ
หรือหลายๆ อาจจะติดปากกันมากกว่าคือคำว่า "Drag" หรือ "ลาก" นั่นเองครับ

Case Study ง่ายๆ ก็คือ การเคลื่อนย้ายวัตถุนี่แหละครับ
เราจะเคลื่อนย้ายวัตถุตัวเดียวกับ Entry ก่อนหน้านะครับ ผมจะได้เหนื่อยน้อยลง :P

ขั้นตอนแรก เหมือนเดิมเลยครับ


ขั้นต่อไป (บอกแล้วว่าเร็วนิดนึง กลับไปอ่านอันก่อนหน้าก่อนนะ :P)
ทำการ AddGestureRecognizer เลยครับ


นี่คือ Instance Variable ที่จะใช้ในการทำงานครั้งนี้ครับ


ต่อเป็นละครเรื่องยาวแล้วนะครับ การเคลื่อนที่วัตถุ ไม่ใช่เรื่อง่ายเลย
** จะเป็น 2 ภาพที่เป็น Function เดียวกันนะครับ ผมจะอธิบายทีละส่วน


ในส่วนแรกนี้ที่สำคัญๆ เลยก็คือ เราจะหาจุด 2 จุด นั่นคือ
จุดที่วัตถุอยู่ในตอนแรก และ จุดสุดท้ายที่วัตถุอยู่ ซึ่งอ้างจากตัว View หลัก
และเราจะใช้ค่า Center เป็นจุดอ้างอิงวัตถุ

นั่นทำให้จุดสุดท้ายที่วัตถุจะไปอยู่ คำนวณได้จาก TranslationPoint + ความเร็วของการ Drag
(ความเร็วของการ Drag อาจจะเอาออกได้ ถ้างานของคุณไม่ต้องการใช้)

ต่อมาก็ทำการเช็ค Orientation ของ Device ของเรา และหาขนาดของ Device ด้วย


เราหาขนาดของ Device มาเพื่อทำการ Check ขอบเขตในการลากวัตถุ (ไม่งั้นก็หลุดสิ ^^)
แล้วจากนั้นก็เขียน Core Animation Block เพื่อทำการเคลื่อนย้ายวัตถุไปยังจุดสุดท้ายที่เราต้องการ





วัตถุของเราก็จะลากได้อย่างอิสระ ... เรื่องตกขอบ ถ้าอยากแก้ ก็แก้ส่วนขอบเขตนะครับ 
ลองคำนวณดูเอาเอง อย่างที่บอก ผมอ้างอิงจากจุด Center ของวัตถุ ก็เลยเป็นอย่างที่เห็น


Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android