在viewDidAppear中设置UIView帧,解决iPad中用于启动定向模式的帧问题横向
问题描述:
我在横向模式下启动我的应用程序(iPhone和iPand)。在viewDidAppear中设置UIView帧,解决iPad中用于启动定向模式的帧问题横向
我viewDidAppear发现为iPad帧改变该帧在,比viewWillAppear中一个在。
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相当supprised 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;
}
答
我可以设置帧我在viewDidAppear子视图?
您可以在任何需要的位置设置框架。你为什么不能?
对我来说这似乎是一个有效的问题。如果投票人进行了一些推理,那将会很好。你有一个明确的问题,但几乎没有你的代码,所以我们不知道你给我们的代码是用于iPad,iPhone还是两者,或者你的代码或IB文件中的问题。您是在任何地方手动设置框架,还是所有在XIB /故事板中处理的布局? – DBD
@DBD对你的问题很有帮助。我已经上传了该项目,请在该问题中找到链接。 – andyPaul