iPad Pro 3rd Gen Launch Image - ios

We're trying to bring iPad Pro 3Gen support to our app, but to our surprise, there is no slot in the Image Asset Launch Image set to add launch images for iPad Pro 3Gen. Many answers suggest that we use a launch storyboard, but the problem is that we have different images for iPhone X and regular iPhones, and there is no way to differentiate between them using a regular image set, while the Launch Image set cannot be displayed by a UIImageView. Moreover, we cannot add code to the launch storyboard view controller.
Given the conditions:
1. There need to be iPad Pro 3Gen support
2. Images for iPhone Xs and other iPhones need to be different as they currently are in Launch Image asset
How should we approach this issue? I tried to find answers online but they do not seem to help.

Related

Launch Screen File with different images

My design team has given me various launch screen images for all types of screen sizes found here.
I want to support iPhone 6+ and iPad Pro so I know launch screen files should be used instead of image assets.
However, how do I specify in my launch screen file the different images for each screen size? I thought size-classes would be the way to go but I can't differentiate between iPad Air 2 and iPad Pro that way.
There's also no iPad Pro image asset either.
You can look at device specific image assets (on the attributes inspector of an image in an asset bundle).
It may be impossible to match the design exactly because you can't run code at this point. It may be easier to explain this to the designers and have them design to the constraint.
One simple idea is to have a centered image at the correct resolution and to use a view underneath to have a background (color or tiled image).

#3x images incorrectly used on iPhone 6 or 5S or 5 in XIB's with the "Use as Launch Image" option set

With-in a clean brand new iOS project I've:
added 2 images to the project "background#2x.png" and "background#3x.png"
added a XIB named "LaunchScreen.xib"
checked the XIB's "Use as Launch Screen" option
added a UIView sub-view to LaunchScreen.xib and set its image name to "background.png"
with-in the project settings, under the targets 'General' settings I've set the 'Launch Screen file' to "LaunchScreen"
Now when I launch the app on any of the devices list below the #3x image is displayed in the resulting launch screen when surely the #2x image should be used.
Problem devices (that all use the #3x resource):
iPhone 5 (iOS 8.0.0)
iPhone 6 (iOS 8.0.0)
iPhone 6 (iOS 8.0.2)
iPhone 5 Simulator (iOS 8.0.0)
iPhone 6 Simulator (iOS 8.0.0)
NOTE that the #2x image is distinctive from the #3x image so I can easily identify which one is being used.
At first I assumed this was a bug with the simulator and was staggered when it occurred on a real device also.
I assume this is yet another iOS8 bug however I guess there's also the possibility that its expected behaviour as the result of the launch screen being cached as a static image of some kind.
Any ideas or potential solutions?
EDIT:
For the benefit of others, I have subsequently found that if the images are instead added to an Images.xcassets image set then the correct behaviour is in-fact observed. HOWEVER this is not an ideal solution for us since we have a very specific image export process which means we are not using an Images.xcassets in out project (there are thousands of images in the app).
I have now also raised a Radar with Apple #18513968
http://openradar.appspot.com/18513968
I've just tried this myself, and get the same behaviour you have mentioned.
By setting the Launch Images Source to "Use Asset Catalog", and adding the Launch Image you can get each device to show its specific background. Some screenshots can be seen here:
Supporting iPhone 6 and iPhone 6+ with different launch/splash screen image for iPad Portrait and Landscape orientations
Looking into it a bit more, I found a website that mention:
http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/
"You can use the new adaptive UI features in Interface Builder to fit your layout to different screen sizes. If your scene requires screen-size-specific images, use asset catalogs to define different images per size class."
Maybe that is the only way to do it.

Launch image for iOS 7 iPhone

all!
I have a problem. I've created launch images for my app. I added them through assets catalog.
Ipad ios 6 and 7 works, but iphone works only for ios 6. Ios 7 on iphone shows only black screen (for all: 3, 3 retina and 4 inch), and then app starts, but launch image don't shows.
Yes, iOS6 and iOS7 require you to insert separate launch images for each… Actually, technically, the 2x iOS7 and 2x iOS6 iPhone launch images can be identical, and the R4 iOS7 and R4 iOS7 launch images can likewise be identical, but they are associated separately in the images.xcassets folder based on version.
To guarantee you have launch images associated with each version, go to Targets > General then go to "Launch Images":
Then select all of your supported devices in the right-hand menu under the 3rd tab (in this screenshot from my particular app, only portrait interface is available for iPhone, but if your app also supports landscape, landscape should show up here too). To find out the "expected size" of each launch image, select its placeholder then scroll down to look for the "expected size" also in the right-hand menu. And finally drag the appropriate images into the appropriate placeholder slots to make sure your app has launch images suitable for each device/interface.
I have faced same problem few days ago and i posted my Answer in this question-
iPhone application developed in X-code 5, not showing icon and launch image while running on iPad
Hope it help you.

Image.asset causes app size increased

I'm using a launch image for iPad Landscape named "Default-Landscape" which is 5.4 MB in size. My app is an universal app and supported from iOS 5, so I have to assign Launch for "iPad Landscape iOS7" and "iPad Landscape iOS5 and iOS6".
When doing like this, image asset automatically creates separate images for both iOS7 and iOS5,6 named "Default-Landscape" and "Default-Landscape-1". So additional 5.4 MB was added unnecessarily. I know that we can assign Launch images without assets catalog. But I still like to know whether we can assign same image for multiple targets using image asset in Xcode.
Any suggestions please...
Thanks

iOS image size for iPhone and iPad

I am developing universal app for iOS,
I am using Autolayout feature in my app,
I have one doubt:
I want to apply background image in my app,
How many background image i will have to make ??
and what will be the naming conventions of the images ?
so that iPhone automatically takes corresponding images according to device.
Like we gives on launch images, default#2x.png, Default-568h#2x.png, Default-Portrait#2x.png and device automatically understands it's corresponding images.
you need 2 types of images for iphone and ipad.
For ipad you just need to add ~ipad before .png. e.g. image.png for iphone and image~ipad.png for ipad.
Do the same for Retina display images also.
e.g.
iPhone Retina: image#2x.png
iPad Retina: image#2x~ipad.png
What should help in your case is Asset Catalogs, which are by far the best way to manage assets for multiple devices.

Resources