2009-07-22 44 views
23

Tài liệu không nói nhiều về kỹ thuật này.FillMode làm gì chính xác?

fadeInAnimation.fillMode = kCAFillModeForwards; 

Tôi không thực sự thấy tác dụng của điều này. Tôi có chế độ xem với alpha được đặt thành 0.0. Sau đó, tôi phai màu. Nhưng khi tôi bỏ ghi chú dòng, không có gì thay đổi. Hành vi tương tự. Tôi muốn hiểu những gì fillMode này thực sự.

Trả lời

43

Từ CAMediaTiming protocol documentation:

Xác định nếu trình bày của người nhận được đông lạnh hoặc gỡ bỏ một lần thời gian hoạt động của nó đã hoàn thành.

Điều này xác định điều gì xảy ra ở cuối hoạt ảnh của bạn. Theo mặc định, nó được đặt thành kCAFillModeRemoved, có nghĩa là các thay đổi hoạt ảnh sẽ được hoàn tác khi hoạt ảnh được hoàn thành. Nếu bạn chuyển sang kCAFillModeForwards, các thay đổi do hoạt ảnh sẽ gây ra xung quanh.

Lưu ý rằng bạn cũng có thể cần phải đặt thuộc tính removeOnCompletion thành NO để ngăn hoạt ảnh của bạn bị xóa, điều này sẽ làm cho cài đặt này không hiệu quả.

+0

vĩ đại giải thích! Có, tôi đã xóa selectedOnCompletion thành NO. Đó là lý do tại sao tôi không thấy thay đổi nào trong fillMode, đúng không? Tại sao lại gọi là "fillMode"? Vì vậy, nội bộ nó không có gì hơn là giữ các thông số tính toán mới sau khi tất cả các thói quen nội suy hoạt hình? – Thanks

+1

Vì vậy, 'removeOnCompletion' là gì nếu' fillMode' thực hiện công việc? – jowie

+1

@jowie - Điều đó ngăn chặn toàn bộ hoạt ảnh khỏi bị xóa khi hoàn thành. FillMode chỉ đơn thuần là khóa nó vào trạng thái cuối cùng của nó, nhưng nếu nó được thiết lập để được gỡ bỏ khi hoàn tất, cài đặt fillMode sẽ không thành vấn đề. –

2

hãy để tôi cung cấp cho nó một câu trả lời rõ hơn:
mặc dù trong thiết lập thuộc tính fillMode của hình ảnh động để kCAFillModeForwards (hoặc kCAFillModeBoth) xuất hiện và đồng thời thiết lập removedOnCompletion-NO có thể giữ lớp của bạn trong tình trạng cuối cùng của nó khi hoạt hình xong nhưng việc sử dụng fillMode này không phải là cách được thiết kế. và thực sự làm hại nếu bạn có hình ảnh động khác thêm vào cùng một keyPath

(bằng cách này, cách tiếp cận chính xác cho trạng thái cuối cùng giữ hình ảnh động là thay đổi giá trị tài sản để phù hợp với khung cuối cùng của hoạt hình.)

fillModethực sự sử dụng là liên quan tới một hình ảnh động trẻ trong một hình ảnh động nhóm, do đó bạn có thể xác định hình ảnh động con cụ thể trong trạng thái mong muốn

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