我的目标是支持iPhone 5,我很清楚在界面生成器中有iOS 6的自动布局功能。这是伟大的,但有时我想加载我自己的图像,如果它是iPhone 5。
因此,在我的iPhones游戏中,一些图像的大小正好是屏幕的大小(320x480)或(640x960)。因此,如果我使用的是iPhone 5,这些图像不会覆盖整个屏幕。因此,我将为这些全屏图像制作(640 X 1136)图像。
现在我知道,如果我简单地将图像命名为: MyImage-568h@2x.png,它将不会加载。那么,我该如何子类化UIImage才能加载非默认镜像的-568h@2x镜像呢?
谢谢!
发布于 2012-09-25 06:45:49
UIImage * img = UIScreen mainScreen.bounds.size.height > 500?默认imageNamed:@“UIImage -568h.png”:UIImage imageNamed:@"Default.png";
我在一个应用程序中做到了这一点,在没有摄像头的设备上,主屏幕是Default.png;它看起来并不太老套,因为我们无论如何都需要修改Default.png来支持新设备。
@implementation MyImage +( UIImage )imageNamed:(NSString*)name { if (UIScreen mainScreen.bounds.size.height > 500) { UIImage * img = [UIImage imageNamed:name NSString:@“-iPhone5”;if (img) { return img;}} return UIImage imageNamed:name;} @end
确实没有必要对UIImage进行子类化。如果你觉得很麻烦,你可以打补丁/swizzle/或者+[UIImage imageNamed:]来指向一个定制的方法,但我真的不推荐这样做,除非是调试。
https://stackoverflow.com/questions/12573853
复制相似问题