-1

アプリ (iPhone および iPad) を横向きモードで起動しています。

iPad フレームのフレームは、 viewWidAppearのフレームよりもviewDidAppearで変化することがわかりました。


IOS IPAD 5.1 シミュレーター

viewWillAppear では、0.000000 20.000000 768.000000 1004.000000 です。

一方、viewDidAppear では 0.000000 0.000000 748.000000 1024.000000 です


IOS IPAD 6.0 シミュレーター[ただし、ios 6 iPad シミュレーターにはかなり驚きました]

viewWillAppear では、0.000000 0.000000 748.000000 1024.000000 です。

一方、viewDidAppear では、viewWillAppear と同じです。


では、 viewDidAppear でサブビューのフレームを設定できますか? ここで完璧なフレームを取得します。

iPhoneの場合、結果は20.000000 0.000000 300.000000 480.000000の両方の方法で同じです。

iPadiPhoneで動作が異なるのはなぜですか?

Info.plist には、Landscape left と Right の「サポートされているインターフェイスの向き」があり、「初期インターフェイスの向き」は LandscapeLeft に設定されています。

AppLaunch メソッドは次のとおりです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

         self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

         self.viewController=[[ViewController alloc] init];

         self.window.rootViewController = self.viewController;
}

ViewController.m には次のメソッドがあります。

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     if(UIInterfaceOrientationIsLandscape(interfaceOrientation)){
         return YES;
     }
     return NO;
}

このリンクでプロジェクトを見つけてください

4

1 に答える 1

0

viewDidAppear でサブビューのフレームを設定できますか?

フレームは好きな位置にセットできます。なぜできなかったのですか?

于 2012-09-09T10:11:00.467 に答える