0

这是我在 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 中为相应的方向分配特定的背景图像?

4

1 回答 1

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
    }
}
于 2013-06-15T10:25:53.393 回答