iOS 图像命名约定

标签 ios cocos2d-iphone

我是 iOS 开发的新手。

我目前正在使用可用于 iPad Retina、iPad、iPhone 5 和 iPhone 4s/4 的 cocos2d 库构建应用。

我正在设置我所有的图像,我正在尝试找出命名约定。

有谁知道可以帮助我的指南吗?

假设我有一个 background.png。

据我了解:

  • background.png -> iPhone(非视网膜/后备)
  • background-hd.png -> iPhone 4s/4(视网膜)
  • background-ipad.png -> iPad(非视网膜)
  • background-ipadhd.png -> iPad(视网膜)

所有其他文件都将使用相同的命名约定吗?例如:

  • arbitraryButton.png -> iPhone(非视网膜/后备)
  • arbitraryButton-hd.png -> iPhone 4s/4(视网膜)
  • arbitraryButton-ipad.png -> iPad(非视网膜)
  • arbitraryButton-ipadhd.png -> iPad(视网膜)

如何命名 iPhone 5 文件?

我进行了一些搜索,但似乎找不到任何具体的指南。

谢谢!

最佳答案

操作系统有一个您可以使用的命名约定(并为您强制执行,这意味着您只需要将文件引用为 @"fileName")。文档 is available here .

  • fileName.png -> iPhone(非视网膜/后备)
  • fileName@2x.png -> iPhone 4s/4(视网膜)
  • fileName~ipad.png -> iPad(非视网膜)
  • fileName@2x~ipad.png -> iPad(视网膜)

注意:~iphone 也存在,并且可以与 ~ipad 一起使用或代替使用 ~ipad。同时使用 ~ipad 和 ~iphone 可以防止 Apple 可能引入的第三种习语。 咳嗽 电视咳嗽

至于 iPhone 5,操作系统不强制执行命名方案。但是,使用与启动图像相同的方案可能是明智的。

  • fileName-568h@2x.png -> iPhone 5

为了在整个应用程序中轻松处理此问题,您可以创建一个类别,并在您知道您将拥有 iPhone 5 友好图像以及常规尺寸图像的地方使用它。可以制作一个简单的版本,如下所示。

UIImage+iPhone5Image.h

#import <UIKit/UIKit.h>

@interface UIImage (iPhone5Image)

+ (UIImage*)iPhone5ImageNamed:(NSString*)imageName;

@end

UIImage+iPhone5Image.m

#import "UIImage+iPhone5Image.h"

#define IsIPhone5() ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568)

@implementation UIImage (iPhone5Image)

+ (UIImage*)iPhone5ImageNamed:(NSString*)imageName
{
    if (IsIPhone5()) {
        NSString* newImageName = [NSString stringWithFormat:@"%@-568h", imageName];
        return [UIImage imageNamed:newImageName];
    }
    else {
        return [UIImage imageNamed:imageName];
    }
}

@end

关于iOS 图像命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14859763/

相关文章:

ios - Firebase中非常接近的事件的数据一致性

c++ - iOS 处理强制应用程序退出的正确方法是什么

ios - iOS 8.3 iPad 上的自定义 UIWindow 可在模拟器上运行,但不能在设备上运行

objective-c - 几个 UIViewController 和 OpenGLView (Cocos2D) 之上的透明 UITableView

ios - 在 cocos2d v3 中播放音频

苹果手机SDK : Local notifications limitations

android - 像自动布局或约束之类的东西

ios - 从控制台发布 NSNotification

ios - 无法在 Swift SpriteKit 中更改 BMGlyphLabel 的颜色

ios - 在 iOS 游戏中计算分数的最佳方式