2011-12-06 57 views
12

Tôi là rất lập trình mới cho iOS, Objective-C và lập trình nói chung, vì vậy hãy tha thứ cho tôi nếu bạn tìm thấy câu hỏi này một cách đơn giản.Mục đích của tham số "forKey" là gì khi thêm một CAAnimation vào một lớp?

Tài liệu trên trang web của Apple thường tuyệt vời, nhưng tôi đang gặp một số sự cố khi cố gắng che đầu quanh một số phần của Hoạt ảnh chính. Tôi muốn làm rõ một cách rõ ràng vị trí của một CALayer. Từ những gì tôi hiểu, tôi cần phải tạo ra một đối tượng CABasicAnimation, cấu hình nó với fromValue, toValue vv, sau đó thêm nó vào một lớp sử dụng phương pháp này:

- (void)addAnimation:(CAAnimation *)anim forKey:(NSString *)key 

Vấn đề của tôi là tôi không có ý tưởng những gì ý nghĩa của tham số forKey: là. Từ những gì tôi đã thấy trong các ví dụ trực tuyến, nó không được yêu cầu? Tôi cho rằng nó có liên quan đến mã hóa khóa-giá trị? (Tôi vẫn không thực sự hiểu điều đó, một trong hai.) Ngay cả khi nó không được yêu cầu, tôi muốn biết nó là gì để tôi có thể tận dụng lợi thế của tính hữu ích của nó trong ứng dụng của tôi.

Cảm ơn bạn đã trợ giúp bạn có thể cung cấp.

Trả lời

6

CALayer có một số phương pháp để nhận hoạt ảnh đã được thêm vào lớp. Nếu bạn muốn nhận, thay thế hoặc xóa một hoạt ảnh cụ thể từ CALayer, bạn phải cung cấp cho nó phím khi bạn gọi animationForKey: hoặc removeAnimationForKey :.

Bạn không phải cung cấp khóa, bạn có thể sử dụng nil cho khóa nếu bạn không có bất kỳ nhu cầu cụ thể nào để tìm một hoạt ảnh cụ thể theo khóa.

10

Nó cho phép bạn ghi đè hoạt ảnh. Ví dụ: hoạt ảnh ngầm được tạo bằng cách tắt một thuộc tính có thể tạo hình động (ví dụ: opacity) sẽ sử dụng tên của thuộc tính làm khóa. Bằng cách này nếu bạn sửa đổi lại (để tạo ra một hình động mới), hoạt ảnh mới sẽ thay thế hình ảnh động cũ thay vì cố gắng có cả hai hình động chạy đồng thời.

+0

Đồng ý với Kevin. Khả năng chỉ định một thuộc tính forKey có thể dừng hoạt ảnh ngầm chạy khi bạn có một hoạt ảnh rõ ràng. Nó được giải thích thực sự tốt trong WWDC 2010 phiên 424 Video (Core Animation trong thực tế, Phần 1 - https://developer.apple.com/videos/wwdc/2010/). Nó giải thích nó tốt hơn nhiều so với tôi có thể. –

5

Nó chỉ là một số định danh cho hoạt ảnh của bạn. Bạn có thể gọi các phương thức animationForKey:removeAnimationForKey: sau đó bằng khóa được chỉ định.

Cũng vì lớp có thể chỉ có một hoạt ảnh cho mỗi khóa duy nhất, bạn có thể sử dụng giá trị này làm số nhận dạng cho một số loại hoạt ảnh và tất cả các phương thức ...ForKey: sẽ trả về/xóa/thay thế hầu hết hoạt ảnh hiện tại.

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