คำถามติดแท็ก gesture-recognition

18
พุ่งการตรวจจับท่าทางบนเค้าโครงตาราง
ฉันต้องการให้ระบบflingตรวจจับท่าทางทำงานในแอปพลิเคชัน Android ของฉัน สิ่งที่ฉันมีคือGridLayoutที่มี 9 ImageViewวิ แหล่งที่สามารถพบได้ที่นี่: Romain ชายของตารางเค้าโครง ไฟล์ที่ฉันถ่ายนั้นมาจากแอปพลิเคชั่น Photostreamของ Romain Guy และได้รับการดัดแปลงเพียงเล็กน้อยเท่านั้น สำหรับสถานการณ์การคลิกง่ายฉันจำเป็นต้องตั้งค่าเฉพาะonClickListenerสำหรับแต่ละImageViewฉันจะเพิ่มให้เป็นหลักซึ่งการดำเนินการactivity ดูเหมือนว่าอนันต์ซับซ้อนมากขึ้นที่จะใช้สิ่งที่ตระหนักถึงView.OnClickListener flingฉันคิดว่านี่เป็นเพราะมันอาจจะขยายviewsหรือไม่ หากกิจกรรมของฉันดำเนินการ OnGestureListenerฉันไม่ทราบวิธีตั้งค่าให้เป็นผู้ฟังท่าทางสัมผัสสำหรับGridหรือImageมุมมองที่ฉันเพิ่ม public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ... หากกิจกรรมของฉันดำเนินการ OnTouchListenerฉันจะไม่มี onFlingวิธีการoverride(มีสองเหตุการณ์เป็นพารามิเตอร์ที่อนุญาตให้ฉันพิจารณาว่าการพุ่งนั้นน่าสังเกต) public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ... ถ้าฉันสร้างที่กำหนดเองViewเช่นGestureImageViewที่ขยายImageViewฉันไม่ทราบวิธีที่จะบอกกิจกรรมที่flingเกิดขึ้นจากมุมมอง ไม่ว่าในกรณีใดฉันลองและไม่ได้เรียกวิธีการเมื่อฉันสัมผัสหน้าจอ ฉันแค่ต้องการตัวอย่างที่ชัดเจนของการทำงานข้ามมุมมองนี้ ฉันควรแนบไฟล์นี้listenerเมื่อไรและอย่างไร ฉันต้องสามารถตรวจสอบการคลิกเพียงครั้งเดียวได้เช่นกัน // Gesture detection …


7
UILongPressGestureRecognizer จะถูกเรียกสองครั้งเมื่อกดลง
ฉันกำลังตรวจสอบว่าผู้ใช้กดลงไป 2 วินาทีหรือไม่: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 2.0; [self addGestureRecognizer:longPress]; [longPress release]; นี่คือวิธีจัดการกดแบบยาว: -(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{ NSLog(@"double oo"); } ข้อความ "double oo" ถูกพิมพ์สองครั้งเมื่อฉันกดลงนานกว่า 2 วินาที ทำไมนี้ ฉันจะแก้ไขได้อย่างไร


4
ความแตกต่างระหว่าง Pan และ Swipe ใน iOS คืออะไร?
ฟังดูเรียบง่าย .. ถือแทร็กแพดขยับนิ้วปล่อย .. แต่ยังไงก็ตามการปัดก็ไม่ถูกทริกเกอร์ (แพนจะถูกทริกเกอร์แทน) UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:v action:@selector(handleSwipe:)]; swipeGesture.direction= UISwipeGestureRecognizerDirectionUp; [v addGestureRecognizer:swipeGesture]; Pan ได้รับการยอมรับจากลำดับข้างต้นแทน UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:v action:@selector(handlePan:)]; [v addGestureRecognizer: panGesture]; หากมีการแสดงความคิดเห็น pan การปัดจะรับรู้ด้วยท่าทางเดียวกัน .. ด้วยคำถาม 2 ข้อนี้: อะไรคือความแตกต่างระหว่างกระทะกับเครื่องรูด? เราจะจำลองการปัดบนเครื่องจำลอง iPhone ได้อย่างไร?



15
ใน iOS จะลากลงเพื่อปิดโมดอลได้อย่างไร?
วิธีทั่วไปในการปิดโมดอลคือการปัดลง - เราจะอนุญาตให้ผู้ใช้ลากโมดอลลงได้อย่างไรถ้ามันไกลพอโมดอลจะถูกปิดมิฉะนั้นจะเคลื่อนไหวกลับไปที่ตำแหน่งเดิม ตัวอย่างเช่นเราสามารถใช้สิ่งนี้ได้ในมุมมองรูปภาพของแอป Twitter หรือโหมด "ค้นพบ" ของ Snapchat เธรดที่คล้ายกันชี้ให้เห็นว่าเราสามารถใช้ UISwipeGestureRecognizer และ [self dischargeViewControllerAnimate ... ] เพื่อปิด Modal VC เมื่อผู้ใช้ปัดลง แต่จะจัดการเพียงการปัดครั้งเดียวไม่ให้ผู้ใช้ลากโมดอลไปรอบ ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.