2012-06-24 40 views
5

Thay vì mở rộng quy mô, mà tôi nghĩ rằng cử chỉ chụm thường được sử dụng cho, tôi đang tìm cách phát hiện xem pinch có bị véo và véo ra để tôi có thể thu gọn hoặc mở rộng một số phần bảng. Tôi sẽ làm thế nào?Làm thế nào để phát hiện pinch trong cử chỉ vs véo cử chỉ?

+0

Nó là tốt hơn để sử dụng .velocity, đó (rõ ràng!) Là tích cực hay tiêu cực tùy thuộc vào cách bạn đang đi. Các câu trả lời dưới đây là whacky. – Fattie

Trả lời

7

Vâng, điều đó có vẻ dễ dàng. Lớp UIPinchGestureRecognizer chỉ có chỉ hai thuộc tính, scalevelocity. Có vẻ hợp lý rằng một số âm scale sẽ có nghĩa là một pinch hướng vào, một dấu phẩy dương tính scale.

NB: "tiêu cực" có thể gây hiểu nhầm. "Nhỏ hơn" là 0.0 < scale < 1.0, "lớn hơn" là scale > 1.0.

+0

hmm véo ra cũng mang lại cho tôi quy mô tiêu cực? fyi im sử dụng pinch kéo từ storyboard, với quy mô thiết lập như 1 và kết thúc chậm trễ kiểm tra và trì hoãn bắt đầu bỏ chọn – user1337645

+1

Impossible. Tôi nghi ngờ rằng pinching ra cho bạn một quy mô tiêu cực. Vui lòng kiểm tra và mô tả cách bạn nhận được kết quả này. – Mundi

+3

véo các kết quả bên trong theo thang tỷ lệ bắt đầu từ 1,0 và giảm xuống còn 0,0, đồng thời véo các kết quả bên ngoài ở tỷ lệ bắt đầu và 1,0 và tăng từ đó. –

2

Bạn đã có quyền xem xét thuộc tính quy mô, tuy nhiên nó chuyển sang khoảng 1, không phải 0.

 
    - (BOOL) pinchWasOutwards:(UIGestureRecognizer *)gestureRecognizer 
    { 
     return gestureRecognizer.scale > 1; 
    } 
+0

Chỉ cần sử dụng .velocity, đó là nhiều hơn nữa KISS. – Fattie

10

Thuộc tính "tỷ lệ" nhỏ hơn 1 cho cử chỉ chụm và lớn hơn 1 cho pinch-out. Điều này xảy ra cho tất cả các pinches bằng 2 ngón tay.

Điều tôi cũng quan sát được là nếu tôi chèn vào bằng 5 ngón tay (đó là phím tắt để giảm thiểu thành nhà), giá trị tỷ lệ chính xác là 1,0 - mọi lúc. Nhưng điều này không được hỗ trợ bởi bất kỳ tài liệu nào của Apple mà tôi biết.

Bạn có thể thử nghiệm những gì các giá trị được sắp đặt bằng cách đơn giản một NSLog trong việc xử lý nhúm bạn chọn

NSLog(@"Scale: %.2f | Velocity: %.2f",pinch.scale,pinch.velocity); 
Các vấn đề liên quan