Xcode 4.5 background image iPhone 4, 4s, 5

后端 未结 3 2043
轻奢々
轻奢々 2021-02-04 18:29

I have in my viewController.m written the background code:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@\"image.png\"]];


        
相关标签:
3条回答
  • 2021-02-04 19:08

    iPhone 5 is retina, just like iPhone 4 and 4S, and the @2x-image will be used automatically for all these devices. It's only the startup-image that is called "-568h@2x" for iPhone 5. You need to write some code to use a different image, something like this would work:

    NSString *filename = @"image.png";
    CGRect screenRect = [[UIScreen mainScreen] bounds];
    if (screenRect.size.height == 568.0f)
        filename = [filename stringByReplacingOccurrencesOfString:@".png" withString:@"-568h.png"];
    
    imageView.image = [UIImage imageNamed:filename];
    0 讨论(0)
  • if you are trying to use [UIImage imageNamed:@"image.png"] and expect image-568h@2x.png to be picked automatically from the bundle for iPhone 5, it will not work. Automatic picking works only for iPhone 4 and 4S.

    Only the Default image named as Default-568h@2x.png will be picked automatically in iPhone 5.

    for normal images, if you have separate image for iPhone 5, try using this code

    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) {
        // code for 4-inch screen
    } else {
        // code for 3.5-inch screen
    }
    
    0 讨论(0)
  • 2021-02-04 19:27

    I believe it is incorrect to assume that you can apply the -568h@2x trick to all image files. I think it only works for Default-568h@2x.png. This is the file that iOS looks for at app launch on a 4" display device, as well as the "flag" to enable 4" display support in the SDK. For example, once you include this specific file, your table views will fill the screen.

    I have not read anything to suggest that you can simply provide any image with the -568h@2x file name component and have it be used automagically. You'll have to do that yourself based on the screen size, e.g. [UIScreen mainScreen].bounds.size.height.

    0 讨论(0)
提交回复
热议问题