2

我正在处理 ipad 应用程序开发的 UI 问题(关于图像)。我已经阅读了苹果开发网站上的一些文件,但我找不到任何关于它的信息。

图像文件是否有任何文件约定来区分系统应为横向/纵向加载哪个图像。因为我看到启动图像,我们可以使用“MyLaunchImage-Portrait.png”和“MyLaunchImage-Lanscape.png”。我曾尝试将“-Landscape”、“-Portrait”、“-Landscape~ipad”、“-Portrait~ipad”添加到其他图像以供一般使用,但它失败了。

有没有人遇到过这个问题?

4

1 回答 1

1

不幸的是,除了 iPad 的启动图像之外,没有标准的约定。但是,您可以使用NSNotificationCenter监听方向更改事件并相应地响应它们。这是一个例子:

- (void)awakeFromNib
{
    //isShowingLandscapeView should be a BOOL declared in your header (.h)
    isShowingLandscapeView = NO;
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(orientationChanged:)
                                                 name:UIDeviceOrientationDidChangeNotification
                                               object:nil];
}

- (void)orientationChanged:(NSNotification *)notification
{
    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
    if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
        !isShowingLandscapeView)
    {
        [myImageView setImage:[UIImage imageNamed:@"myLandscapeImage"]];
        isShowingLandscapeView = YES;
    }
    else if (UIDeviceOrientationIsPortrait(deviceOrientation) &&
             isShowingLandscapeView)
    {
        [myImageView setImage:[UIImage imageNamed:@"myPortraitImage"]];
        isShowingLandscapeView = NO;
    }
}
于 2012-09-07T02:59:49.853 回答