2011-09-07 23 views
5

Chỉ cần tự hỏi liệu có cách nào để có chế độ xem nhận biết cử chỉ chạm khi đang hoạt ảnh không? Tôi đang làm việc trên một quan điểm mà có một dòng cashapelayer tethered với nó. Khi người dùng mở chế độ xem (cử chỉ di chuyển), dòng sẽ theo sau cho đến khi người dùng ngừng quay. Tại thời điểm này một hình ảnh động được thực hiện mà mang lại quan điểm trở lại vị trí ban đầu của nó và lớp tether trở lại là tốt. Bây giờ vấn đề thực sự duy nhất của tôi là trong khi chế độ xem và tether đang hoạt ảnh, chế độ xem không phản hồi với cử chỉ chạm…Cách nhận dạng cử chỉ chạm khi chế độ xem đang hoạt ảnh

Có ai biết một số thủ thuật không? Tôi hy vọng lời giải thích của tôi là dễ hiểu và cảm ơn trước!

(nếu khái niệm chế độ xem tethered không rõ ràng, có một ứng dụng miễn phí được gọi là ứng dụng discovr sẽ đưa ra ví dụ).

+0

UPDATE: Để làm rõ, các ranh giới hình chữ nhật ban đầu của quan điểm DOES nhận ra cử chỉ tap nhưng không nhận ra cử chỉ vòi của quan điểm di chuyển, trong khác từ, khung hiện tại. – johnnyd

+0

Bạn cần kiểm tra câu trả lời này: http://stackoverflow.com/a/4432546/129202 – Jonny

+0

Giải pháp trong liên kết trên có thể hoạt động với xử lý cảm ứng thô nhưng có thể không hoạt động với cử chỉ. Xem cách giải quyết này cho các cử chỉ: http://stackoverflow.com/questions/8340329/how-to-to-make-gesturerecognizer-working-in-an-animating-uiimage-view –

Trả lời

15

Tôi giả định rằng bạn đang sử dụng phương thức hoạt ảnh [UIView animateWithDuration: delay: options: animations: completion:];.

Nếu vậy, bạn cần phải vượt qua UIViewAnimationOptionAllowUserInteraction làm tùy chọn để có chế độ xem động để phản hồi chạm khi đang hoạt ảnh.

+1

Cảm ơn câu trả lời nhưng tôi đã làm cái đó. Dường như cử chỉ được nhận ra nhưng chỉ trong hình chữ nhật ban đầu của chế độ xem, không phải ở chế độ xem tức thì ... Tôi sẽ cập nhật câu hỏi của mình để rõ ràng hơn – johnnyd

2

Bạn cần đặt hai tùy chọn - UIViewAnimationOptionAllowUserInteractionUIViewAnimationOptionAllowAnimatedContent. Đầu tiên cho phép bạn tương tác với các khung nhìn trong khi hoạt ảnh, các lực thứ hai vẽ lại các khung nhìn trên mọi khung hình hoạt ảnh và không sử dụng các ảnh chụp nhanh của các khung hình bắt đầu và kết thúc.

+0

Tôi đã thử đề xuất của bạn nhưng vẫn không có súc sắc. :(Tôi có thể thử phương pháp này: [user-interactive-disabled] (http://stackoverflow.com/questions/7221688/caanimation-user-input-disabled) vì điều này khiến tôi phát điên! :) – johnnyd

+0

Hm. Làm thế nào về bạn thử thêm công nhận cử chỉ cho một người giám sát của xem hoạt hình của bạn và sau đó kiểm tra xem bạn đã khai thác bên trong xem hoạt hình với 'hitTest:'? –

+0

Đã thử rằng trước khi tất cả điều này và thử nó một lần nữa chỉ vì lợi ích của cố gắng và vẫn không hoạt động ... Tôi chỉ không nhận được nó ... cảm ơn mặc dù cho các đề xuất! – johnnyd

1

(Swift 3) đèo .allowUserInteraction tùy chọn

UIView.animate(withDuration: 0.75, delay: 0.0, options: [.allowUserInteraction], animations: { 
     // Desired animation(s) 
}, completion: { (finished: Bool) in 
     // Completion 
})