hpi*_*que 6 iphone resources universal-binary ipad ios
根据iOS参考库:
在iOS 4.0及更高版本中,可以将各个资源文件标记为仅在特定类型的设备上可用.
这是否意味着如果您要为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"];
}
Run Code Online (Sandbox Code Playgroud)
我应该知道的任何其他考虑因素?
是的,你是对的,该功能不适用于当前的 iPad - iOS 3.2。
作为解决方法,我在 UIImage 中创建了一个类别,因此我可以像anImage = [UIImage mbImageNamed:@"MyImage.png"]. 类别方法只是将“~iPad”放在 iPad 上的后缀之前 - 代码与您的类似。
另一个丑陋的事情是 UIWindowControllers 不根据设备加载 xib 文件。我为所有窗口控制器创建了一个基类并加载 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |