iOS 7/Xcode 5: Access Device Launch Images Programmatically

iOS 7 / Xcode 5: Access device launch images programmatically

You can use the launch images without having to include them twice. The key is that when you use an asset catalog, the file names of the images that are included in the app bundle are (sort of) standardized and may not be related to what you've named the original files.

In particular, when you use the LaunchImage image set, the files that end up in the application bundle have names like

  • LaunchImage.png
  • LaunchImage@2x.png
  • LaunchImage-700@2x.png
  • LaunchImage-568h@2x.png
  • LaunchImage-700-568h@2x.png
  • LaunchImage-700-Landscape@2x~ipad.png

etc. Note, in particular, they are not named Default.png or any variation of that. Even if that's what you called the files. Once you've dropped them in one of the wells in the asset catalog, they come out the other end with a standard name.

So [UIImage imageNamed:@"Default"] won't work because there is no such file in the app bundle. However, [UIImage imageNamed:@"LaunchImage"] will work (assuming you've filled either the iPhone Portrait 2x well or the pre iOS7 iPhone Portrait 1x well).

The documentation indicates that the imageNamed: method on UIImage should auto-magically select the correct version, but I think this only applies to image sets other than the launch image--at least I've not gotten it to work quite correctly (could just be me not doing something right).

So depending on your exact circumstances, you might need to do a little trial and error to get the correct file name. Build and run the app in the simulator and then you can always look in the appropriate subdirectory of ~/Library/Application Support/iPhone Simulator to verify what the actual file names in the app bundle are.

But again, the main point is that there is no need to include duplicates of the image files and you don't need to make any adjustments to the Copy Bundle Resources build phase.

Xcode 7 unable to access launch image programmatically from the set of images called Brand Assets

You need to use the open the Assets.xcassets to open the xcode assets & then you can use the name as follows:

Sample Image

Select the Assets.xcasssets from Project navigator,then all assets that you have added will be displayed, so in the example below you can use the asset as follows:

[UIImage imageNamed:@"report"]

Access iPad launch images programmatically?

I've solved this issue using a long method

BOOL deviceIsIpad = NO;
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) {
deviceIsIpad = YES;
}

if (!deviceIsIpad) {
backImage.image = [UIImage imageNamed:@"LaunchImage"];
} else {
UIInterfaceOrientation interfaceOrientation = self.interfaceOrientation;
CGFloat screenScale = [[UIScreen mainScreen] scale];
if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown){
if (screenScale > 1) {
backImage.image = [UIImage imageNamed:@"LaunchImage-700-Portrait@2x~ipad.png"];
} else {
backImage.image = [UIImage imageNamed:@"LaunchImage-700-Portrait~ipad.png"];
}
} else {
if (screenScale > 1) {
backImage.image = [UIImage imageNamed:@"LaunchImage-700-Landscape@2x~ipad.png"];
} else {
backImage.image = [UIImage imageNamed:@"LaunchImage-700-Landscape~ipad.png"];
}
}
}

How to reference a launch image in React Native

Please include an image in your project src folder and please call image path using require() like this

<Image source={{uri: require('../Images/LaunchImage.png')}} />

here LaunchImage.png is its file name and 'Images' is the folder name



Related Topics



Leave a reply



Submit