2011-01-18 10 views
1

私のアプリケーションの1つでは、ムービーを再生できるビューを実装しました。ビューのoriantationはポートレートです。私は、映画が再生されると、ビューが回転するように、次のメソッドを上書きします。ロード後のビューの回転

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (isPlayingMovie) { 
     return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || 
       interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
    } else { 
     return (interfaceOrientation == UIInterfaceOrientationPortrait); 
    } 
} 

問題はビューが自動的に回転しないことです。ビューが読み込み中にのみビューのコントローラでこのメソッドを呼び出すと思ったが、どうすればそのビューを再び呼び出すことができますか?

ありがとうございます。ことはできません:

答えて

1

短い答えを、コードを使用してみてください。

長い回答:あなたは肖像画のみを行い、自分でビューを回転させて戻してください。

取得回転の通知(viewDidAppearか何かでそれを置く):(ここではWebViewのための一例):

- (void)rotationChange:(NSNotification *)notification { 
    UIDeviceOrientation o = [[UIDevice currentDevice] orientation]; 
    CGFloat rotation; 
    [self.webView setTransform:CGAffineTransformIdentity]; 
    switch (o) { 
     case UIDeviceOrientationPortrait: 
      rotation = 0; 
     case UIDeviceOrientationPortraitUpsideDown: 
      rotation = 180; 
    ... 
    } 

    [[UIApplication sharedApplication] setStatusBarOrientation:o animated:YES]; 
    CGAffineTransform transform = CGAffineTransformIdentity; 
    transform = CGAffineTransformRotate(transform, rotation * (M_PI/180.0f)); 
    [self.webView setTransform:transform]; 
} 

EDIT:ドン:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(rotationChange:)             
    name:UIDeviceOrientationDidChangeNotification 
    object:nil]; 

はその後 "rotationChange" で回転を行います必要がない場合は通知を無効にすることを忘れないでください(「viewDidDisappear:」など)

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil]; 
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]; 
0

は、この方法では

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration{ 
//required functionality 

} 

乾杯

関連する問題