2009-05-30 29 views
8

Tôi có một số Hoạt ảnh cốt lõi đang diễn ra cùng một lúc. Tất cả chúng đều có một ngữ cảnh và một id hoạt ảnh, trong đó ngữ cảnh là đối tượng đang tạo hoạt ảnh (các đối tượng UIImageView). Tôi muốn tạm dừng chúng, do đó, các hình ảnh động chỉ dừng lại tạm thời, và sau đó khi một số điều được thực hiện, tiếp tục nó để hoàn thành nó. Những điều này chỉ xảy ra trên các chuyển động cuộn rất nhanh trong UIScrollView. Tôi muốn cải thiện hiệu suất bằng cách dừng tất cả hoạt ảnh đang diễn ra nhưng không phải là hoạt ảnh tạo cuộn cuộn chế độ xem. Tôi đã triển khai một hoạt ảnh tùy chỉnh của contentOffset cho chế độ xem cuộn đó.Có cách nào để tạm dừng Hoạt ảnh chính và tiếp tục lại sau một thời gian không?

Trả lời

4

Cách duy nhất tôi có được xung quanh điều này là như sau.

Đối với mỗi xem bạn muốn ngăn chặn hiệu ứng động:

Đặt khung của view để các lớp trình bày

Hủy bỏ tất cả các hình ảnh động từ quan điểm cho rằng

Thực hiện di chuyển của bạn

Tính toán lại hình ảnh động

Thêm hoạt ảnh mới vào chế độ xem

Tôi biết nó không phải là những gì bạn muốn nghe, nhưng nó không phải là xấu như nó âm thanh. Cách tốt để theo dõi lượt xem bạn muốn dừng là cung cấp cho họ thẻ được xác định trước.


Để loại bỏ hình ảnh động:

[myView.layer removeAllAnimations]

[myView.layer removeAnimationForKey: @ "theAnimationKey"]

+0

Làm thế nào bạn có thể loại bỏ các hình ảnh động từ màn hình? – Thanks

+0

[myView.layer removeAllAnimations] hoặc [myView.layer removeAnimationForKey: @ "theAnimationKey"] –

+0

Đây có thể là một câu hỏi ngu ngốc, nhưng làm cách nào để đặt khung của khung nhìn thành lớp trình bày? Tôi giả sử bạn không nói về thuộc tính khung của khung nhìn ở đây. – kareman

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