3

Ich arbeite an einer App, die eine Coverflow-Stilansicht in Querformat anzeigen muss, wenn das Gerät in Querformat gedreht wird. Ich habe schon einmal an einigen Apps gearbeitet, aber keine von ihnen erforderte Querformat/Rotation, also bin ich nicht damit vertraut. Ich habe den Code, um die Coverflow-Ansicht zu zeichnen, aber es ist schwer zu präsentieren.Wie zeige ich eine Landscape Coverflow Style-Ansicht an, wenn das Gerät gedreht wird?

Was ich möchte ist im Grunde wie das, was die iPod App tut, wenn Coverflow angezeigt wird. Die darunter liegende Ansicht dreht sich nicht, aber der Coverflow wird oben eingeblendet und blendet sich aus, wenn sie zurück in das Hochformat gedreht wird.

Ich vermute, es ist etwas mit ShouldAutorotateToInterfaceOrientation und einer modalen Ansicht zu tun mit einem Fade Übergang präsentiert, oder die Technik hier mit:

http://www.iphonedevsdk.com/forum/iphone-sdk-development/22285-replicating-cool-ipod-landscape-transition-iphone.html

ich mein Hauptproblem Vermutung ist, dass die modalen Ansicht wird angezeigt, aber der Inhalt wird nicht in Querformat gedreht. Was soll ich machen?

Hier ist der Code ich jetzt benutze:

Erstansicht

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ 
NSLog(@"rotating?"); 
if (interfaceOrientation == UIInterfaceOrientationPortrait) { 
    return YES; 
} 
if ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight)) { 
    NSLog(@"rotating"); 
    CoverFlowViewController *coverFlowView = [[CoverFlowViewController alloc] init]; 
    [coverFlowView setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
    [self presentModalViewController:coverFlowView animated:YES]; 
    [coverFlowView release]; 
} 
return YES; 

}

VIEW

Modal

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
NSLog(@"rotating? going back?"); 
if ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight)) { 
    return YES; 
} else { 
    [self.parentViewController dismissModalViewControllerAnimated:YES]; 
} 
return NO; 

}

+0

Ich möchte das auch wissen ... –

Antwort

1

Sie sollten das tun Übergang innen:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 

}