iphone - 切换背景图片 iphone 5 - iphone 4

标签 iphone objective-c ios cocoa-touch

在我的 FirstViewController 中,如果设备是 iPhone4 或 iPhone5,我已经编写了切换背景的代码:

文件名: bg-for5-568@2x.png
bg-for4@2x.png
bg-for4.png

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *backgroundImage = [[UIImage alloc] init];
    if([[UIScreen mainScreen]bounds].size.height == 568)
    {
       backgroundImage = [UIImage imageNamed:@"bg-for5-568h"];
    }
    else
   {
       backgroundImage = [UIImage imageNamed:@"bg-for4"];
   }
   self.view.backgroundColor = [[[UIColor alloc] initWithPatternImage:backgroundImage] autorelease];
   [backgroundImage release];
}

当我在我的模拟器上启动该应用程序时,iphone5 的背景显示双倍大小,超出 View 范围。

/* 已解决,谢谢 */

最佳答案

我不确定这是否是解决此问题的方法,因为我缺少一些信息,但是:

首先:从您的imageNamed: 方法中删除.png。从 iOS4 开始,你不应该再这样做了。接下来的事情是:你的形象的名字是什么?请注意,iPhone5 具有视网膜显示屏,您的图像应命名为 bg-for5-568h@2x.png,但在源代码中称为 bg-for5-568h

除此之外:在几乎所有您的图像不是照片的情况下,您所做的都是一个坏主意。即使是照片,也只需为 iPhone 4 和 4S 使用更大的图像。它并没有那么大,所以内存占用在这里不是问题!查看 UIImageViewcontentMode 属性。您可以使用它来调整较大图像的位置。如果图像不是全屏,您可能还需要检查 UIImageViewclipSubviews 属性以裁剪图像。

相信我,在我的公司里,我们有很多钩子(Hook),比如 ~ipad、~iphone、~2x 甚至可拉伸(stretch)图像。所有这些 Hook 在日期之前都运行良好,苹果宣布了类似的东西或只是一种新设备。所以我决定不再做这些钩子(Hook)了。一开始它们似乎很有帮助,但当市场上有新东西时,你遇到的麻烦是不值得的!

关于iphone - 切换背景图片 iphone 5 - iphone 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972264/

相关文章:

iphone - URL连接连接超时时iPhone应用程序崩溃

iphone - AFNetworking POST并取回数据

ios - 在 iOS 应用程序上缓存数百个文件 24-48 小时 : all in Document folder or better in multiple folders?

iphone - 如何在我的导航栏中创建一个带有 UIActivityIndi​​cator 的按钮,其样式与普通按钮相同?

ios - PushViewController 导致黑屏,没有 Storyboard

ios - 如何创建 Airbnb iOS App Explore 选项卡?

ios - 除了使用初始化程序之外,如何在 10 秒后停止 NSURLRequest 超时?

iphone - 为什么 Three20 会做一些奇怪的事情,导致 Xcode 4.2 出现问题?

ios - 如何从 plist 中添加行类型数组中的项目?

ios - 在iOS和OS X之间共享iCloud Core数据