2011-09-23 31 views
34

Trước khi mã này, phim pic alpha của tôi được đặt thành 0,Core Animation không hoạt động có giá trị "alpha"

CABasicAnimation* fadein= [CABasicAnimation animationWithKeyPath:@"alpha"]; 
    [fadein setToValue:[NSNumber numberWithFloat:1.0]]; 
    [fadein setDuration:0.5]; 
    [[moviepic layer]addAnimation:fadein forKey:@"alpha"]; 

Không có gì xảy ra, nếu tôi đặt alpha đến 0,5 trước thay vào đó, các alpha vẫn ở mức 0,5 và không hoạt ảnh cho 1.

Tôi đã xem mã sử dụng UIView beginAnimations: xung quanh, nhưng tôi đang dạy hình động lõi nên tôi tự hỏi tại sao CABasicAnimation không thể thực hiện tác vụ đơn giản như thế này?

Trả lời

88
[CABasicAnimation animationWithKeyPath:@"opacity"]; 

UIView hiển thị số này là alpha trong trường hợp CALayer hiển thị số này là opacity.

+0

Tôi sẽ thử điều này sớm nào. Nhưng có trường hợp nào như thế này không? Và tôi có thể kiểm tra những gì tôi có thể sử dụng cho KeyPath? (thông thường tôi sẽ kiểm tra tài sản của đối tượng có setAlpha trong nó nhưng trong trường hợp này nó không khớp ...) – 5argon

+4

@Sargon Với Core Animation bạn đang làm động các thuộc tính 'CALayer', không phải thuộc tính' UIView', vì vậy lớp là nơi để tìm các tên thuộc tính chính xác - xem: 'view.layer'. – Palimondo

0

@ohho trả lời câu hỏi đã đăng. Tôi sẽ chung chung hơn một chút. Để biết danh sách những gì có thể và cách hoạt ảnh với CABasicAnimation, vui lòng tham khảo Apple's documentation

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