我从一个tabbar应用程序开始,它有2个视图(firstviewcontroller和secondviewcontroller)。第二个视图控制器没有背景图像,但第一个视图控制器没有。
我有2张图片,一张是protrait,另一张是横向。我想要做的就是在方向改变时加载背景图像。我想支持所有方向。
这是我的viewdidload方法
-(void)viewDidLoad
{
imgview=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bgportrait.png"]];
[imgview setFrame:CGRectMake(0, 0, 768, 1024)];
[self.view addSubview:imgview];
[self.view sendSubviewToBack:imgview];
[imgview release];
}
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {NSLog(@“in shouldrotate”); 返回YES; }
(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (toInterfaceOrientation == (UIInterfaceOrientationPortrait || UIInterfaceOrientationPortraitUpsideDown))
{
NSLog(@"in portrait");
}
else if (toInterfaceOrientation == (UIInterfaceOrientationLandscapeLeft || UIInterfaceOrientationLandscapeRight))
{
NSLog(@"in landscape");
}
}
在willRotateToInterfaceOrientation中,它永远不会进入任何if循环并且它不会打印日志,我不确定为什么它与它们中的任何一个都不匹配。我只想为firstviewcontroller设置合适的backgroundimage。我知道这应该很简单,但我无法做到。
答案 0 :(得分:2)
检查你的情况
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if(toInterfaceOrientation==UIInterfaceOrientationPortrait ||
toInterfaceOrientation==UIInterfaceOrientationPortraitUpsideDown)
{
NSLog(@"in portrait");
}
else
{
NSLog(@"in landscape");
}
}