在viewDidAppear中设置UIView Frame,以解决iPad中用于启动方向模式Landscape的帧问题

时间:2012-09-09 10:06:53

标签: uiview frame uiinterfaceorientation viewwillappear viewdidappear

我正在以横向模式启动我的应用程序(iPhone和iPand)。

我发现iPad框架的框架在 viewDidAppear 中的变化比 viewWillAppear 中的框架更改。


IOS IPAD 5.1模拟器

在viewWillAppear中,它是0.000000 20.000000 768.000000 1004.000000。

while,在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

while,在viewDidAppear中,它与viewWillAppear相同。


那么,我可以在viewDidAppear中为我的子视图设置框架吗?,因为这里是完美的框架。

对于iphone,方法20.000000 0.000000 300.000000 480.000000中的结果相同。

为什么我在 iPad iPhone 中获得不同的行为?

Info.plist具有“支持的界面方向”,用于横向左和右,“初始界面方向”设置为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;
}

Please Find the project at this link

1 个答案:

答案 0 :(得分:0)

  

我可以在viewDidAppear中为我的子视图设置框架吗?

您可以在任何地方设置框架。你为什么不能?