CATransform3D nie działa poprawnie, używamponiższy kod. Mój problem polega na tym, że jeśli zmienię transformację, działa dobrze. Gdy puszczę palec, a następnie dokonam większej transformacji, obraz przechodzi do obrazu początkowego. Jak ustawić ostatnią transformację? Używam PanGesture do transformacji. Proszę, daj jakiś pomysł. Z góry dziękuję.
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;
}
Odpowiedzi:
0 dla odpowiedzi № 1CATransform3DIdentity
oznacza, że resetujesz transformację za każdym razem, gdy Twój widok jest dotykany. Posługiwać się CATransform3D rotationAndPerspectiveTransform = layer.transform;
zamiast.