Как повернуть UIImageView в трехмерном круговом режиме?

Я новичок в основной анимации, я хочу повернуть изображение влево или вправо, но я хочу, чтобы оно вращалось по оси z, чтобы оно выглядело как круговое вращение. Вот изображение для более подробного объяснения.

альтернативный текст

Я хочу повернуть изображение, внутреннее изображение, это два изображения.

Я пробовал этот код, пожалуйста, примените его и исправьте код.

-(void)Rotate
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:3.0];
CATransform3D t1 = CATransform3DIdentity;
if(goingCW)
{
    t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
    t1 = CATransform3DTranslate(t1, CUBESIZE/2, 0, 0);
    t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
    t1 = CATransform3DTranslate(t1, CUBESIZE/2, 0, 0);
    t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
    t1 = CATransform3DTranslate(t1, CUBESIZE/2, 0, 0);
    CATransform3D moveTransform = CATransform3DRotate(t1, 0.0, -1.0, 0.0, 0.0);
    [InnerView.layer setTransform:moveTransform]; 
    NSLog(@"Going Left");

}
else
{
    NSLog(@"Going Right");
    t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
    t1 = CATransform3DTranslate(t1, CUBESIZE, 0, 0);
    CATransform3D moveTransform = CATransform3DRotate(t1, 0.0, 1.0, 0.0, 0.0);
    [InnerView.layer setTransform:moveTransform]; 

}
goingCW=!goingCW;   
[UIView commitAnimations];

}

вызовите это с помощью таймера в viewDidLoad или в applicationDidFinishLaunching

goingCW = YES; // change this to NO to make it start rotating CCW instead A bool flag in header file.
    NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(Rotate) userInfo:nil repeats:YES];

person Rahul Vyas    schedule 13.02.2010    source источник
comment
Я считаю, что слайдер на вашем рисунке не использует 3D-элементы, а представляет собой 2D-прокрутку с прозрачным изображением поверх него.   -  person kennytm    schedule 13.02.2010


Ответы (1)


Ваш вопрос не соответствует тому, что показано на изображении. Z проходит через дисплей с отрицательными значениями ближе к вам.

у вас есть 2 вида преобразований: - 2D на уровне UIKit view.transform - (псевдо) 3D на уровне CALayers view.layer.transform

преобразование вращения вокруг Z выполняется с помощью CATransform3DRotate

person Cocoanetics    schedule 18.06.2011