2

我有一个 iPhone 应用程序,它由一个显示网站的 UIWebView 组成。在 UIWebView 在我的ViewController.m文件中完成加载后,我已经为它设置了一个背景图像,如下所示:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
     // Set UIWebView Background Image
     self->webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ui-background-portrait.png"]];
}

当设备处于纵向时这很好,但是如果用户将设备方向切换为横向,我想更改背景图像,如果他们再次切换,则返回纵向等。

我写了下面的代码,但我不知道把它放在哪里(因为它需要在切换方向时更改背景图像;不仅仅是一次):

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    // Set UIWebView Background Image
    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {
        // code for Portrait orientation  
        self->webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ui-background-portrait.png"]];
    }
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
        // code for landscape orientation  
        self->webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ui-background-landscape.png"]];
    }
}

我怎样才能做到这一点?如果你能给我代码并指出把它放在哪里,那将是一个很大的帮助:)

4

1 回答 1

3

在您的视图控制器中覆盖这些方法之一并将您的代码放在那里。

– willRotateToInterfaceOrientation:duration:

– willAnimateRotationToInterfaceOrientation:duration:

– didRotateFromInterfaceOrientation:

将此代码放入您的 ViewController.m

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation) fromInterfaceOrientation
{
    // Set UIWebView Background Image
    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {
        // code for Portrait orientation  
        self->webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ui-background-portrait.png"]];
    }
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
        // code for landscape orientation  
        self->webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ui-background-landscape.png"]];
    }
}
于 2012-07-12T13:01:29.710 回答