ios5中的方向支持

时间:2012-01-09 07:34:18

标签: objective-c ipad ios5

我正在开发一个具有纵向和横向模式方向支持的应用程序。

我是通过改变

中的视图框架和资产大小来实现这一目标的
    -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
self.view.frame = CGRectMake(0,0,1024,768);
}

它在ios4.3及以下版本中运行良好。

当我试图在Xcode4.2中运行时,ios5.0模拟器方向不明确。我的意思是当从纵向视图更改为横向视图时不适合屏幕(框架尺寸小于实际横向框架尺寸)。

知道为什么会这样吗?

非常感谢, 阿维

2 个答案:

答案 0 :(得分:2)

在实际进行方向更改时应用框架xcode4.2和iOS 5对方向更改有一些快速响应,其他视图和控件都得到了改进,因此它不适合您,因此您将在didRotateFromInterfaceOrientation或willRotateFromInterfaceOrientation中尝试它将起作用好了。

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   //support for all orientation change 
    return YES;
}
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
 // in iOS statusBarOrientation is correct than all other orientation changes  
 if(UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
  self.view.frame = CGRectMake(0,0,1024,768);
 else
  self.view.frame = CGRectMake(0,0,768,1024);

}

答案 1 :(得分:0)

检查属性设置中的方向支持 并试试这个

这是状态栏

  -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{

if(interfaceOrientation == UIInterfaceOrientationPortrait){
   self.view.frame = CGRectMake(0,0,768,1004);
}
else{
   self.view.frame = CGRectMake(0,0,1024,748);
}
}