How to specify size for iPhone 6/7 customised edge-to-edge image?

后端 未结 12 1010
死守一世寂寞
死守一世寂寞 2020-11-28 01:59

Say I want a bundled image to take up all available screen width in an iPhone app - for example a banner. I\'d create my_banner.png with width 320px

12条回答
  •  猫巷女王i
    2020-11-28 02:26

    In my case, I was interested in making my base view controller subclass have the same background image as my launch image.

    NOTE: This approach will not work unless this is your specific requirement.

    Also, even when I tried creating a background image that was the correct size for the iPhone 6 (750x1334), loading that image as a pattern image into a background color for a view ended up scaling the image up in an undesirable way.

    This answer gave me the code that I needed to figure out a good solution for me.

    Here's the code I got working to have my launch image match my UIViewController's background image (or vice versa):

    - (void)viewDidLoad {
        [super viewDidLoad];
        UIImage *background         = [UIImage imageNamed:[self splashImageName]];
        UIColor *backgroundColor    = [UIColor colorWithPatternImage:background];
        self.view.backgroundColor   = backgroundColor;
    }
    - (NSString *)splashImageName {
        UIInterfaceOrientation orientation  = [[UIApplication sharedApplication] statusBarOrientation];
        CGSize viewSize                     = self.view.bounds.size;
        NSString *viewOrientation           = @"Portrait";
        if (UIDeviceOrientationIsLandscape(orientation)) {
            viewSize                        = CGSizeMake(viewSize.height, viewSize.width);
            viewOrientation                 = @"Landscape";
        }
        NSArray *imagesDict                 = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
        for (NSDictionary *dict in imagesDict) {
            CGSize imageSize                = CGSizeFromString(dict[@"UILaunchImageSize"]);
            if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
                return dict[@"UILaunchImageName"];
        }
        return nil;
    }
    

提交回复
热议问题