2009-02-11 37 views
8

Tôi đang tạo hoạt ảnh cho thuộc tính khung của UIView bằng cách sử dụng CAKeyframeAnimation trên CALayer của chế độ xem và tạo hoạt ảnh cho thuộc tính "vị trí". Tôi muốn có thể tạm dừng hoạt ảnh ở trạng thái hiện tại khi người dùng chạm vào màn hình, nhưng tôi không thể làm như vậy.Tạm dừng trong tiến trình CAKeyframeAnimation

tôi có thể ngăn chặn các hình ảnh động dễ dàng đủ bằng cách gọi

[view.layer removeAnimationForKey:kFrameAnimationKey]; 

Vấn đề là không phải khung của cái nhìn không đó là vị trí của layer được cập nhật trực tiếp bởi các hình ảnh động. Nếu tôi xem xét thuộc tính vị trí tại thời điểm hoạt ảnh bắt đầu và khi kết thúc bằng hình ảnh

- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)finished 

nó chưa thay đổi.

Dường như bạn cần thực hiện điều đó một cách rõ ràng khi hoạt ảnh dừng lại. Nhưng nếu hoạt ảnh dừng lại ở một số điểm tùy ý, bạn không biết nó đã biến mất bao xa. Vì vậy, câu hỏi là làm thế nào để làm cho các hình ảnh động cập nhật thuộc tính vị trí của lớp như nó đi, hoặc làm thế nào để biết cách xa các hình ảnh động đã đi khi nó được dừng lại.

Trả lời

21

Bạn có thể đạt được điều này tạm dừng của hoạt hình bằng cách lấy presentationLayer của lớp hoạt hình UIView của bạn, sau đó áp dụng khung của nó cho UIView của bạn trước khi loại bỏ các hình ảnh động. Ví dụ:

movingView.frame = [[movingView.layer presentationLayer] frame]; 
[movingView.layer removeAnimationForKey:@"movementAnimation"]; 

Điều này dường như cung cấp sự đóng băng của UIView ở vị trí hoạt hình hiện tại bạn đang tìm kiếm.

+0

Cảm ơn bạn đã trả lời! có vẻ như điều quan trọng ở đây là hiểu chính xác lớp trình bày của một CALayer thực sự là gì. Tôi không chắc họ làm tốt công việc giải thích điều đó. Tôi vẫn không rõ lớp mô hình là gì. –

+0

Phần "Kiến trúc dựng hình động lõi" trong "Hướng dẫn lập trình hoạt ảnh lõi" có sơ đồ đẹp về khái niệm này. Về cơ bản, lớp mô hình là những gì bạn thường đặt giá trị trên, và lớp trình bày là một bản sao chỉ đọc phản ánh trạng thái tức thời của lớp. –

Các vấn đề liên quan