2013-05-09 6 views
0

У меня есть изображение земного шара, которое я хочу постоянно вращать вокруг оси Y. Я также хочу имитировать его как трехмерное вращение. Я нашел код с использованием CABasicLayer и CALayer, но они поворачивают изображение вокруг оси Z.Как повернуть изображение (глобус) вокруг оси Y?

ответ

0

Попробуйте этот код:

CABasicAnimation *rotateAnimation = [CABasicAnimation animation]; 
rotateAnimation.keyPath = @"transform.rotation.z"; 
rotateAnimation.fromValue = [NSNumber numberWithFloat:DegreesToRadians(0)]; 
rotateAnimation.toValue = [NSNumber numberWithFloat:DegreesToRadians(360)]; 
rotateAnimation.duration = 10; 
rotateAnimation.removedOnCompletion = NO; 
// leaves presentation layer in final state; preventing snap-back to original state 
rotateAnimation.fillMode = kCAFillModeForwards; 
rotateAnimation.repeatCount = 99; 
rotateAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

// add the animation to the selection layer. This causes it to begin animating 
[imageView.layer addAnimation:rotateAnimation forKey:@"rotateAnimation"]; 
+0

Xcode говорит о неожиданных @ в программе для строки № 2 и последней строки. – Geek

+0

См. Отредактированный ответ – Anil

+0

Спасибо за ваш ответ. Но это не совсем то, что я хочу. Я хочу, чтобы изображение (земной шар) вращалось подобно реальному миру. Может быть, мне нужно много изображений земного шара под разными углами. Но это не моя главная забота. Есть ли способ повернуть так? – Geek

0

Я в конечном итоге, используя это, потому что нужны разные взгляды глобусы. Все изображения - вид земного шара, взятого под другим углом. Здесь всего 5 изображений, но на самом деле я буду использовать около 36 изображений, потому что изображения будут иметь 10 в качестве разности угла. Таким образом, 360/10 = 36.

UIImage *image = [UIImage imageNamed:@"globe.png"]; 
UIImage *image1 = [UIImage imageNamed:@"globe1.jpeg"]; 
UIImage *image2 = [UIImage imageNamed:@"globe2.jpeg"]; 
UIImage *image3 = [UIImage imageNamed:@"globe3.jpeg"]; 
UIImage *image4 = [UIImage imageNamed:@"globe4.jpeg"]; 

NSArray *imageArray = [NSArray arrayWithObjects:image, image1, image2, image3, image4, nil]; 
// set array of images, you want to cycle, to "animationImages" property. 
self.imageView.animationImages = imageArray; 
//duration of the animation-cycle 
self.imageView.animationDuration = 2.0; 
// 0 for endless repeation 
self.imageView.animationRepeatCount = 0; 
//starts the animation 
[self.imageView startAnimating]; 
Смежные вопросы