gpt4 book ai didi

iphone - iPhone 中特定于设备的资源

转载 作者:可可西里 更新时间:2023-11-01 03:58:37 26 4
gpt4 key购买 nike

根据iOS Reference Library :

In iOS 4.0 and later, it is possible to mark individual resource files as usable only on a specific type of device.

这是否意味着如果您正在为 3.X 设备创建一个通用应用程序,尤其是 3.2 iPad,您不能将特定于设备的资源与 ~ipad~iphone 后缀?

如果是这样,这是处理设备特定资源的正确方法吗?

UIImage* anImage;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
anImage = [UIImage imageNamed:@"MyImage-iPad.png"];
} else {
anImage = [UIImage imageNamed:@"MyImage-iPhone.png"];
}

我应该知道的任何其他注意事项?

最佳答案

是的,您是对的,该功能不适用于当前的 iPad - iOS 3.2。

作为解决方法,我在 UIImage 中创建了一个类别,因此我可以像 anImage = [UIImage mbImageNamed:@"MyImage.png"] 那样使用它。类别方法只是将“~iPad”放在 iPad 上的后缀之前 - 代码类似于您的代码。

另一个丑陋的事情是 UIWindowControllers 不会根据设备加载 xib 文件。我已经为我所有的窗口 Controller 创建了一个基类并加载了 iPad 特定的 XIB:

@implementation MBPadAwareWindowController
- (id)init
{
NSString *className = NSStringFromClass([self class]);
NSString *nibName = UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad ? className : [className stringByAppendingFormat:@"-iPad"];
return [self initWithNibName:nibName bundle:nil];
}
@end

关于iphone - iPhone 中特定于设备的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3952868/

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