2

縦向きと横向きの両方のモードになるアプリを作成しています。iOS 5.0私は次の方法でビューを追加しています。

 -(BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation

{
   if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
    (interfaceOrientation == UIInterfaceOrientationLandscapeRight)))
{
    productname.frame=CGRectMake(240, 97, 106, 20);
            self.view = landscapeView;

}

else if

(((interfaceOrientation == UIInterfaceOrientationPortrait) ||
          (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){
    productname.frame=CGRectMake(153, 151, 106, 20);

    self.view = portraitView;

}

   return YES;

}

しかし、iOS 6.0私はオリエンテーションのために次の2つの方法を得ました。

  • (NSUInteger)supportedInterfaceOrientations
  • (BOOL)自動回転する必要があります

私は実際にデバイスの回転中に発火しなければならない方法が必要です。誰かアイデアがあれば教えてください。私はすでにそれに多くの時間を無駄にしました。

よろしくお願いします。

4

2 に答える 2

1

次のコードで UINavigationController サブクラスを使用しています。

    - (BOOL)shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    if (self.topViewController.presentedViewController) {
        return self.topViewController.presentedViewController.supportedInterfaceOrientations;
    }
    return self.topViewController.supportedInterfaceOrientations;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return self.topViewController.preferredInterfaceOrientationForPresentation;
}

そしてそれは私にとって完璧な仕事です

および AppDelegate.m ファイルで:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    return [UIDevice isIpad] ? UIInterfaceOrientationMaskAll : UIInterfaceOrientationMaskAllButUpsideDown;
}
于 2013-02-23T13:37:11.003 に答える
0

使用する

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
于 2013-02-23T14:55:32.260 に答える