2012-04-19 20 views
7

Nếu có hai hoạt ảnh xảy ra theo thứ tự, tôi muốn xóa hoạt ảnh đầu tiên và bắt đầu hoạt ảnh thứ hai từ vị trí hiện tại. Tôi đã sử dụng [layer removeAllAnimations] để hủy hoạt ảnh đầu tiên trước khi thêm hoạt ảnh thứ hai vào lớp, lớp luôn quay trở lại vị trí ban đầu. Tôi biết đó là hành động mặc định của removeAllAnimations, nhưng tôi muốn biết nếu có bất kỳ cách nào bạn có thể đặt lớp ở vị trí hiện tại. Cảm ơn bạn rất nhiều.Cách cho phép xem hoạt ảnh ở vị trí hiện tại khi [lớp removeAllAnimations] được gọi là

Cập nhật - Tôi đã thực hiện việc này bằng cách nhận vị trí presentationLayer và gán nó cho vị trí lớp mô hình. Và tôi cũng đã sử dụng - (void) animationDidStop: (UIAnimation *) animation đã hoàn thành: (BOOL) flag; để kiểm tra xem hoạt ảnh có kết thúc hay không.

+1

Bạn không phải gọi 'removeAllAnimations' (nếu bạn sợ bị rò bộ nhớ). Dù sao: 'animation.fillMode = kCAFillModeForwards; animation.removedOnCompletion = NO; 'thường làm thủ thuật. –

+0

Cảm ơn bạn rokjarc. Có, bạn là đúng, nhưng những gì tôi muốn làm là hủy bỏ các hình ảnh động đầu tiên trước khi nó kết thúc và bắt đầu một thứ hai. Tôi nhận được điều này bằng cách lấy vị trí presentationLayer và gán nó cho vị trí lớp mô hình. Sau đó, tôi cũng sửa đổi phương thức delegateDidStop để kiểm tra xem animation có dừng lại không. – Jason

+0

nó cũng giúp tôi. – iOmi

Trả lời

1

Bạn có thể sử dụng: khung myView.frame = [[myView.layer presentationLayer]]

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