Wie flip ein UIView um die x-Achse, während gleichzeitig die Umschaltung Untersichten

Diese Frage wurde gebeten vor, aber in einer etwas anderen Weise, und ich war nicht in der Lage zu bekommen, eine der Antworten zu arbeiten, wie ich wollte, so bin ich der Hoffnung, jemand mit großer Core Animation Fähigkeiten, die mir helfen können.

Habe ich eine Reihe von Karten auf einem Tisch. Wie der Benutzer Eingaben nach oben oder unten der Satz der Karten nach oben und unten die Tabelle. Es gibt 4 Karten sichtbar auf dem Bildschirm zu einem bestimmten Zeitpunkt, sondern nur die zweite Karte zeigt sein Gesicht. Wie der user klaut die zweite Karte kehrt zurück auf sein Gesicht und die nächste Karte (je nach swipe-Richtung) landet an seiner Stelle zeigen Ihr Gesicht.

Habe ich meine Karte Klasse Ansicht wie diese:

@interface WLCard : UIView {
    UIView *_frontView;
    UIView *_backView;
    BOOL flipped;
}

Und ich habe versucht, kippen Sie die Karte mithilfe dieses Stück code:

- (void) flipCard {
    [self.flipTimer invalidate];
    if (flipped){
        return;
    }

    id animationsBlock = ^{
            self.backView.alpha = 1.0f;
            self.frontView.alpha = 0.0f;
            [self bringSubviewToFront:self.frontView];
            flipped = YES;

            CALayer *layer = self.layer;
            CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
            rotationAndPerspectiveTransform.m34 = 1.0 / 500;
            rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, M_PI, 1.0f, 0.0f, 0.0f);
            layer.transform = rotationAndPerspectiveTransform;
    };
    [UIView animateWithDuration:0.25
                          delay:0.0
                        options: UIViewAnimationCurveEaseInOut
                     animations:animationsBlock
                     completion:nil];

}

Dieser code funktioniert, hat aber folgende Probleme mit ihm, dass ich kann nicht scheinen, um herauszufinden,:

  1. Nur die Hälfte der Karte über der x-Achse animiert werden.
  2. Einmal umgedreht, mit dem Gesicht der Karte ist auf den Kopf gestellt und gespiegelt werden.
  3. Einmal habe ich legte die Karte, die ich nicht bekommen kann, dass die animation immer wieder. In anderen Worten, ich kann die animation block so oft wie ich will, aber nur das erste mal animiert. Die nachfolgenden Zeiten, die ich versuche zu animieren, führen, um nur ein fade-in und-out zwischen den Untersichten.

Auch Bedenken, dass ich in der Lage sein müssen, um die Interaktion mit der Vorderseite der Karte. das heißt, es hat Tasten auf Sie.

Wenn das jemand hat, führen Sie in diese Themen wäre es toll zu sehen, wie Ihre Lösungen. Noch besser wäre, eine perspektivische Transformation, um die animation zu geben, dass zusätzliche wenig Realismus.

Schreibe einen Kommentar