Core Animation cho phép hình ảnh động tùy chỉnh bằng cách thực hiện phương pháp actionForKey trong CALayer dựa lớp học của bạn:Tôi làm cách nào để sử dụng hoạt ảnh tùy chỉnh cho onOrderOut trong Hoạt ảnh chính?
- (id<CAAction>)actionForKey:(NSString *)key {
// Custom animations
return [super actionForKey:key];
}
Sau đó tôi có thể tạo ra một hình ảnh động và gửi lại cho hành động onOrderIn
(tức là khi lớp được thêm vào lớp khác) . Điều này hoạt động tốt. Nếu tôi làm tương tự cho onOrderOut
(nghĩa là lớp được xóa khỏi lớp phủ của nó), hoạt ảnh trả về bị bỏ qua và hoạt ảnh mặc định được áp dụng thay thế.
Mục tiêu của tôi là để phóng to lớp trong (onOrderIn
) và ra (onOrderOut
):
- (id<CAAction>)actionForKey:(NSString *)key {
if ([key isEqualToString:@"onOrderIn"] || [key isEqualToString:@"onOrderOut"]) {
CABasicAnimation *a = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
a.duration = 0.25;
a.removedOnCompletion = NO;
a.fillMode = kCAFillModeBoth;
if ([key isEqualToString:@"onOrderIn"]) {
a.fromValue = [NSNumber numberWithFloat:0.0];
a.toValue = [NSNumber numberWithFloat:1.0];
} else {
a.fromValue = [NSNumber numberWithFloat:1.0];
a.toValue = [NSNumber numberWithFloat:0.0];
}
return a;
}
return [super actionForKey:key];
}
Phóng to công trình, thu nhỏ không. Thay vào đó, hoạt ảnh mờ dần mặc định được sử dụng.
Mã có thể chứa một số lỗi chính tả, vì tôi đang nhập mã này trên một máy khác.
Có ai giúp được không?
Ah, cảm ơn bạn.Tôi sẽ kiểm tra điều này nếu tôi cần nó một lần nữa, trong khi đó chúng tôi đã viết một phiên bản hoàn toàn khác của phần mềm với Qt Jambi. ;) – Lemming