2009-07-10 7 views
0

Ich versuche eine Unteransicht zu erstellen, die über meiner Hauptansicht liegt, die ungefähr 3/4 der Größe der Hauptansicht ist. Wenn eine Schaltfläche gedrückt wird, sollte die Unteransicht zu einer anderen Unteransicht wechseln. Ich bin nah dran, habe aber ZWEI Probleme.Subviews über eine Hauptansicht spiegeln

Das erste Problem besteht darin, dass beim ersten Drücken der Umschalttaste die zweite Teilansicht im Vollbildmodus gestartet und auf die angegebene Bildgröße verkleinert wird, anstatt dass die spiegelnden Animationen gerendert werden.

Sobald die zweite Ansicht gerendert ist, kann ich zwischen der ersten und der zweiten Ansicht wechseln (ich habe eine zweite Taste hinzugefügt, um zu Testzwecken zurückzuspringen).

Mein zweites Problem ist, dass wenn die Ansicht kippt, die neue Ansicht vor dem Umdrehen geladen wird, und dann das Umdrehen auftritt. Ich habe Flipping-Ansichten erstellt, die vorher korrekt funktionierten, aber nur, wenn der gesamte Bildschirm die Ansicht war.

Hier ist mein Code, der in meinem Haupt-View-Controller ist:

- (void)viewDidLoad { 

    Page1Controller *myPage1=[[Page1Controller alloc] initWithNibName:@"Page1Controller" bundle:nil]; 
    Page2Controller *myPage2=[[Page2Controller alloc] initWithNibName:@"Page2Controller" bundle:nil]; 
    self.page1 = myPage1; 
    self.page2 = myPage2; 
    [myPage1 release]; 
    [myPage2 release]; 
    [[page1 view] setFrame:CGRectMake(45, 40, 230, 280)]; 
    [[self view] addSubview:[page1 view]]; 

    [super viewDidLoad]; 
} 

Und hier ist der Code für die beiden Tasten:

- (void)flipPressed:(id)sender { 
    [UIView beginAnimations:@"View Flip" context:nil]; 
    [UIView setAnimationDuration:1.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:[page2 view] cache:YES]; 
    [page1.view removeFromSuperview]; 
    [[page2 view] setFrame:CGRectMake(45, 40, 230, 280)]; 
    [[self view] addSubview:[page2 view]]; 

    [UIView commitAnimations]; 

} 

- (void)backFlipPressed:(id)sender { 
    [UIView beginAnimations:@"View Flip" context:nil]; 
    [UIView setAnimationDuration:1.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:[page1 view] cache:YES]; 
    [page2.view removeFromSuperview]; 
    [[self view] addSubview:[page1 view]]; 
    [[page1 view] setFrame:CGRectMake(45, 40, 230, 280)]; 

    [UIView commitAnimations]; 
} 

Jede Hilfe entweder auf meine Fragen werden sehr geschätzt!

Antwort

0

Erstes Problem: Setzen Sie die Frames Ihrer Ansichten vor beginAnimations.

+0

Vielen Dank - das behebt das Problem mit der zweiten Teilansicht im Vollbildmodus und schrumpft. Die Ansicht wird immer noch nicht beim ersten Klicken geclippt, sondern nur bei nachfolgenden Klickern. –