Ich implementiere eine sehr einfache Flip-Animation, aber der Flip ist nicht da.UIViewAnimationOptionTransitionFlipFromRight nicht von Xcode erkannt
ich ein Beispiel aus der Dokumentation als Vorlage verwenden, jetzt Apple empfehlen Sie Blöcke für Animationen verwenden und dass dies der Ansatz: (von der docs)
[UIView transitionWithView:containerView
duration:0.2
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; }
completion:NULL];
Wrapping die beiden Ansichten, die Sie möchte zwischen in einem Container wechseln. Ich mache es so.
UIView *container = [[UIView alloc] initWithFrame:target];
[self.view addSubview:container];
[container addSubview:productImage];
UIView *background = [[UIView alloc] initWithFrame:target];
[background setBackgroundColor:[UIColor darkGrayColor]];
[background setAlpha:0.1f];
[UIView transitionWithView:container
duration:0.8
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{
[[[container subviews] objectAtIndex:0] removeFromSuperview];
[container addSubview:background];
}
completion:NULL];
Zwei seltsame Dinge passieren: Es gibt keinen Übergang ist, der Behälter zeigt das product (vom Typ UIImageView), tauscht es dann mit der Hintergrundansicht. Keine Animation.
Die zweite Sache ist, was mich dazu gebracht zu glauben, dass dies nicht der üblicher Tippfehler war, dass die
UIViewAnimationOptionTransitionFlipFromRight
nicht von Xcode erkannt wird, wird es nicht automatisch vervollständigt, ist es nicht hervorgehoben. Xcode wird das nur tun, wenn ich die veraltete verwenden:
UIViewAnimationTransitionFlipFromRight //i.e. without the Option part
Ich begann dann meine SDK-Version zu prüfen usw. alles scheint auf 4,2 gesetzt werden, XCode ist Version 3.2.5, beide Ziel- und Projekteinstellungen haben bauen und setzen Sie das Ziel auf 4.2.
Was fehlt mir hier?
Hope eine Reihe von geschulten Augen können mir helfen :) Vielen Dank im Voraus.
Hallo Aditya und danke. Wie macht man das in einem Block? – RickiG
Ich nehme an, dass Sie diese Animation beim Start der Anwendung verwenden, setzen Sie diesen Code in eine Methode und rufen Sie diese Methode beim Start auf, indem Sie etwas wie diese aufrufen ... Selbstwiederholungen: NEIN]; wobei inittab die Methode wäre, die den Animationsblock des Codes enthält. – Aditya
Warum würden Sie das vermuten? Ich denke, Ricki möchte die neue Block-API verwenden. Dies ist die alte Art, Animationen zu erstellen. Apples Dokumentation sagt beginAnimations: context: sollte in neuen iOS 4-Anwendungen vermieden werden. Ich habe jedoch keine Lösung. Ich habe das selbe Problem. –