CATransform3D не работает должным образом

CATransform3D не работает должным образом, я использую приведенный ниже код. Моя проблема в том, что если я изменю преобразование, оно работает нормально. Как только я отпускаю палец, а затем делаю больше преобразований, изображение переходит к исходному изображению. Как установить последнее преобразование? Я использую PanGesture для преобразования. Пожалуйста, дайте какую-нибудь идею. Заранее спасибо.

if ([recognizer respondsToSelector:@selector(translationInView:)]) {
    CGPoint translation = [(UIPanGestureRecognizer *)recognizer translationInView:recognizer.view.superview];
    CALayer *layer = self.layer;
    CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
    rotationAndPerspectiveTransform.m34 = 1.0 / -500;
    rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, translation.x * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
    layer.transform = rotationAndPerspectiveTransform;
    rotationAndPerspectiveTransform.m34 = 1.0 / -500;
    rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, -translation.y * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
    layer.transform = rotationAndPerspectiveTransform;
}

person Mani    schedule 17.09.2012    source источник


Ответы (1)


CATransform3DIdentity означает, что вы сбрасываете преобразование каждый раз, когда ваше представление получает касание. Вместо этого используйте CATransform3D rotationAndPerspectiveTransform = layer.transform;.

person Kyr Dunenkoff    schedule 17.09.2012