我正在开发一个具有纵向和横向模式方向支持的应用程序。
我是通过改变
中的视图框架和资产大小来实现这一目标的 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
self.view.frame = CGRectMake(0,0,1024,768);
}
它在ios4.3及以下版本中运行良好。
当我试图在Xcode4.2中运行时,ios5.0模拟器方向不明确。我的意思是当从纵向视图更改为横向视图时不适合屏幕(框架尺寸小于实际横向框架尺寸)。
知道为什么会这样吗?
非常感谢, 阿维
答案 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);
}
}