这是我在ipad iOS6中指定背景的代码,
- (void)viewDidLoad
{
if ([[UIScreen mainScreen] bounds].size.height == 1024)
{
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"homeipad.png"]];
}
else if ([[UIScreen mainScreen] bounds].size.height == 768)
{
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"landscapipad.png"]];
}
}
它没有变化取决于方向?我已经包括
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
如何在ipad中为相应的方向分配特定的背景图像?
答案 0 :(得分:0)
只有在内存中创建一个新的viewDidLoad
对象并推送/显示该控制器对象时,才会调用UIViewController
。
方法名称viewDidLoad
定义您的viewcontroller视图已加载。现在,您可以在此处执行所有初始化任务。
回答您的问题。
以下UIVIewController的委托方法将为您提供帮助。每次设备更改其方向时都会调用这些方法。
// Called before interface rotation
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration;
// Called after interface rotation
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;
还有一件事,您可以通过以上两种方法检查当前方向,而不是比较屏幕高度。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration;
{
if( UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
{
// Your code goes here for landscape orientation
}
else
{
// Your code goes here for portrait orientation
}
}