gpt4 book ai didi

objective-c - iPad - 根据设备方向(纵向或横向)更改图像

转载 作者:行者123 更新时间:2023-11-28 22:50:11 25 4
gpt4 key购买 nike

在我的 viewDidLoad 方法中,我正在应用一个“加载图像”,它会在 webView 完成加载之前显示。我想根据 iPad 的方向(纵向或横向)指定不同的加载图像。

我找到了 this page这就是我的代码的基础。

我的代码如下所示。 (这都包含在我的 viewDidLoad 方法中)。目前这仅适用于Portrait 模式。知道为什么我的景观代码没有被调用吗?请帮忙!

//detect if iPad    
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
//if in Portrait Orientation
if([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
loadingImage = [UIImage imageNamed:@"webView-load-image-Portrait~ipad.png"];
loadingImageView = [[UIImageView alloc] initWithImage:loadingImage];
loadingImageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"webView-load-image-Portrait~ipad.png"],
nil];
}
//if in Landscape Orientation
if([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft
|| [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) {
loadingImage = [UIImage imageNamed:@"webView-load-image-Landscape~ipad.png"];
loadingImageView = [[UIImageView alloc] initWithImage:loadingImage];
loadingImageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"webView-load-image-Landscape~ipad.png"],
nil];
}

}

更新

我知道您应该能够使用图像文件名修饰符,以便设备自动提取正确的图像。我尝试将 webView-load-image.png 放入我的应用程序图像文件夹中,并使用所有正确的扩展名(并从文件名中删除 -Portrait~ipad):

  • webView-load-image~iphone.png
  • webView-load-image@2x~iphone.png
  • webView-load-image-Landscape~ipad.png
  • webView-load-image-Landscape@2x~ipad.png
  • webView-load-image-Portrait~ipad.png
  • webView-load-image-Portrait@2x~ipad.png

它仍然无法正常工作:(

最佳答案

我回头看了看我前段时间开发的一个应用程序,我正在做类似的事情。这就是我让它工作的方式......

我创建了一个方法来处理方向的变化......

BOOL isPortraitView = YES;

@implementation MyViewController
{
// a bunch of code...

- (void)setOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UIInterfaceOrientationIsPortrait(interfaceOrientation))
{
isPortraitView = YES;

// do other stuff
}
else
{
isPortraitView = NO;

// do other stuff
}
}

// other code...
}

它接受 UIInterfaceOrientation 值,因此您不必使用状态栏方法(如果我没记错的话,该方法不是最好/最可预测的)。我还存储了一个类级别的 bool 值以供快速引用。然后我在 willRotateToInterfaceOrientation 方法上调用它。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[self setOrientation:toInterfaceOrientation];
}

这也可以处理加载过程中的方向变化。

关于objective-c - iPad - 根据设备方向(纵向或横向)更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com