I'm developing a universal iOS app that only supports portrait and upside-down interface orientations. When supplying the launch images in Xcode, I see that I have warnings for landscape orientations, even having only portrait and upside down enabled in device orientations settings. Does this mean that I need to supply landscape launch images anyway? I don't find this clear in Apple's documentation.
Thanks
No. These are warnings. Apple would prefer you support all orientations on iPad, and recommend you do, but they do not require it. (Yet)
Launch Images in Landscape Orientation is optional and xCode ignores it if it is not provided in Application.
However, If you are using Xcode5 there will be a folder named Images.xcassets > Launch Images > There will be a blank icon available for iPad Landscape > Right Click on those 1x and 2x icon > Remove Selected Items.
This will remove the warnings that you are having in your case.
Let me know if that helps.
an iPad app includes at least one launch image in portrait
orientation and at least one launch image in landscape orientation.
Related
My application supports both orientation landscape and portrait and here i am using launch screen for splash screen then dragged uiimageview and pined trail, lead, bottom, top...what are all the sizes required to add? should i use image assets? Do i have to create two different image? I am using two different image for iPhone and iPad by using size class, Its stretching when iPad runs on landscape mode.
I am referring this https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/
Here how to set image for landscape and portrait and sizes?
We know how to use launch image using asset catalog.
For iPhoneX design gets collapsed, many people suggested us to use launch screen storyboard, then iPhoneX issue went away..
Thanks in advance...
Here is good Apple document answering your question: Launching your iPhone Application in Landscape
Very concise, this document says
Set launch image for either Portrait mode or Landscape mode. Choose orientation of launch image according to your requirement for Application Launch. Do not use static launch image, if your application supports both orientation.
Launch Images
Launch images for iPhone apps are always sized to match the dimensions of the screen in portrait orientation. For applications that launch into landscape orientation, you should use your preferred graphics editing software to rotate the content of the launch image while keeping the image's size consistent with a portrait launch image (height > width).
Avoid using asset catalogs to manage the launch images of landscape applications.
Except for launch images used by the iPhone 6 Plus, asset catalogs assume that all iPhone launch images are for the portrait orientation. When your application is compiled, entries for each launch image are added to the compiled information property list under the UILaunchImages key. The value for the UILaunchImageOrientation key in each of these entries is always Portrait. These entries are then ignored at launch time because the value of Portrait for the UILaunchImageOrientation key does not match the launch orientation (Landscape Left or Landscape Right). The result is a blank screen during launch as the system cannot find an appropriate launch image.
Instead, you should use a Launch File if your application only supports iOS 8 and above. Otherwise, you will need to add your launch images as resources to your project and then add the UILaunchImages key to your application's information property list. Be sure to disable use of the asset catalog for managing the launch images by selecting 'Don't use asset catalogs' from the Launch Image Source menu under the General tab of the project editor for your applications' target.
It’s best to use an Xcode storyboard for your launch screen, but you can provide a set of static images if necessary. Create static images in different sizes for different devices, and be sure to include the status bar region.
Static Launch Screen Images
Here is dimension table for static launch screen image for both orientations:
How to set landscape static image?
Enable Landscape launch screen image support from your image assets
(Image) Assets.xcassets >> Launch Image >> Attribute Inspector >> Enable Landscape (tickmark) >> Set Landscape images
Here is nice tutorial for the same: Customizing LaunchScreen.storyboard
Set image with size of 1125 × 2436 for iPhone X.
I am developing an app support iOS 6.0 and up and only in landscape mode for both device.
I have an issue in splash screen/launch screen for landscape mode, I have used 2 approach but didn't work properly.
Approach 1: When I use Images.xcassets to set Launch images. It work fine in iPad device of any OS but don't work in iPhone device as specially in 4" screen phones and 4.7" screen phones.
I have attached image of Images.xcassets as below:
Approach 2
Now because of above problem, I have used lauchscreen.xib for iPhone and iPad. Now problem is, when i use this approach, Splash screen display as a portrait mode rather than landscape in iOS 7.1 only.
Supported Device Orientation:
I was shock when I read this and heard about it..
Till iOS 7, Apple don't support Landscape mode for iPhone and iPod. Apple supports Landscape mode only for iPad.
So what if we develop app and give support from iOS 6 / iOS 7?
Solution:-
In Images.xcassets, select iPhone for portrait mode and add rotated image with 90 degree.
Let's understand with Step by step process :-
Suppose you have image with 480x320 dimension image.
Open that image in preview(Image editor)/photoshop.
Now rotate that image and save it.
Add rotated image at respective place in Images.xcassets.
Clean Project and run.
Please make sure your orientations are set appropriately. Also please refer this link for more details :- iOS 6: How do I restrict some views to portrait and allow others to rotate?
I know how to make an iPad app portrait only for the whole app and how to make particular views portrait only, but not how to make the launch image portrait only. How do I do it?
Currently I only have "portrait" checked under "iOS 7.0 and Later" in images.xcassets. The reason I want the launch image portrait only is I tried getting landscape to work but despite multiple attempts and asking about it here, I had no luck.
Clarification:
I want the app to handle both portrait and landscape iPad and iPhone. But the landscape image for iPad does not display so I want to force the launch image and just the launch image to be Portrait only.
No idea if you checked this but here is something often overlooked.
In the Workspace, if you choose your target project, in Deployment Info, there are two things to check there. First, make sure the Device Orientation is set to "Portrait" only. Then, open the drop down menu on "Devices". Choose each separately and do the same thing. For some reason for me, universal does't apply it to iPhone and iPad simultaneously.
What I understood from the available documentation and my testing is that
All existing Apps on iPhone 6 and 6 Plus run in compatibility mode,
which means the APIs (like [UIScreen mainScreen].bounds) will
return 320x568 (iPhone 5/5s) still in new iPhones (6/6 Plus) and
all UI is scaled to the correct resolution by iOS.
To support iPhone 6/6Plus we need to create xib for Launch Screen
(File->New->File->UserInterace->Launch Screen) and set the nib file
as "Launch Screen File".
We can set different images for launch screen inside Launch screen nib file based
on avaialble size classes. [Basically combinations of Any, regular
and compact]
There is no way to differentiate between iPad in portrait and iPad
in Landscape orientation (both are regular width regular height).
Also there no way to differentiate between iPhone 4/4s and iPhone
5/s.
Is there a way I can support iPhone 6/6 Plus mode and also provide different launch images for iPad in portrait and iPad in landscape orientation?
See also the similar problem here iOS 8 size classes for iPad landscape
You don´t have to use the launch screen file to make your App iPhone 6 / 6+ resolution compatible. Instead, you can select the LaunchImage asset as your Launch Images Source.
It can be found at "App Icons and Launch Images" under your Targets:
If there is no LaunchImage asset just go to your Images.xcassets, make a secondary click (right click) and select "New Launch Image":
The result is something like that:
Now just drag and drop your images for the specific resolutions you want to support and set the created LaunchImage asset as your source.
Hope it helps
Cheers
Asset catalogues currently work in landscape mode on iPhone on ios8. I had this reponse from apple support:
"There is a bug involving launch images in asset catalogs and apps
that launch in landscape on iPhone. Behind the scenes, the asset
catalog compiler generates the same UILaunchImages key [1] in the
final Info.plist that you would have added when you were specifying
launch images manually. One of the sub-keys for each launch image
specified under the UILaunchImages key is UILaunchImageOrientation
which is always set to Portrait by the asset catalog compiler. This
makes sense because apps on iPhone always launch in portrait
orientation [2]. However, the iOS app launcher decides that since
your UISupportedInterfaceOrientations only contains
UIInterfaceOrientationLandscapeLeft and
UIInterfaceOrientationLandscapeRight, it will only look for landscape
launch images under the UILaunchImages key, of which it finds none.
Since there is no way to force the assets catalog compiler to specify
Landscape for the UILaunchImageOrientation sub-key of iPhone
launch images, you should continue to specify your launch images by
editing the information property list for your app as before."
I want to design a universal app that I'd want to support just portrait orientation. It's weird because Xcode allows you to select portrait orientation only in the target's Deployment Info settings (and in Info.plist), but reading the iOS Human Interface Guidelines, in the section regarding the launch images, I've found this:
You must provide at least one launch image. Typically, an iPhone app includes at least one launch image in portrait orientation; an iPad app includes at least one launch image in portrait orientation and at least one launch image in landscape orientation.
Does that mean that you have to provide a launch image in landscape orientation even if you only support portrait orientation? Or is it required to support landscape orientation in iPad?
Thanks
EDIT: It looks like it is not required to support both portrait and landscape orientations in iPad, though strongly recommended. However, it looks like, if an orientation supported, also the opposite one should be (portrait and upside-down, for instance). Is it required then to provide both launch images? (portrait and upside-down). Thanks again
It is strongly recommended that your application support all orientations. This includes portrait, portrait upside-down, landscape left and landscape right. iPad apps that require an orientation must support both variants of that orientation.
https://developer.apple.com/library/ios/qa/qa1588/_index.html