2010-07-20 20 views
7

Tôi đang tạo hiệu ứng động một cái nhìn UIImage với mã nàyCATransform3DRotate và UIImageView

CABasicAnimation *animation; 
animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
animation.duration = 1; 
animation.toValue = [NSNumber numberWithFloat:M_PI]; 
animation.fromValue = [NSNumber numberWithInt:0]; 
[square.layer addAnimation:animation forKey:@"rotation"]; 

Tất cả hoạt động tốt nhưng mảng của tôi có vị trí ban đầu của mình ở phần cuối của phim hoạt hình. Tôi nhìn vào các thuộc tính lớp và thấy:

[square.layer setTransform:CATransform3DRotate(HERE, -M_PI, 0, 0, 0)]; 

Và tôi không biết phải viết thay vì "HERE". Bạn có thể vui lòng giúp tôi không? Cảm ơn rất nhiều!

Trả lời

3

CATransform3DRotate() coi tham số đầu tiên là biến đổi để áp dụng xoay vòng. Nếu bạn đang tìm kiếm để xoay chuyển của lớp của bạn, bạn sẽ sử dụng

[square.layer setTransform:CATransform3DRotate(square.layer.transform, -M_PI, 0, 0, 0)]; 

Điều đó nói rằng, nếu vấn đề mà bạn đang gặp là lớp Jerks trở lại vị trí bắt đầu từ cuối của phim hoạt hình, tất cả bạn cần làm là đặt thuộc tính removedOnCompletion của hoạt ảnh thành NO và thuộc tính fillMode của hình ảnh thành kCAFillModeForwards.

+0

Thnaks rất nhiều Brad! – Pierre