OK, I have a question regarding launch images on the iPad and orientation. Again, this is specifically regarding, launch images and has nothing to do with rotation/orientation once the application actually gets control.
Anyway, the Default.png resource is always loaded, regardless of orientation of the device, regardless of supported orientations, and regardless of Initial Interface Orientation. It just appears that the app is considered to be in Portrait until it is (possibly) auto-rotated later. I read something to this effect on the apple dev stuff, but given that there are launch images for these different orientations (Default-Landscape, Default-LandscapeLeft, etc.) I presumed that orientation was not fixed at launch.
The simple solution was to rotate my Default.png 90 degrees so that it is at least dimensionally correct, but that is not an acceptable solution unless it is the only solution. I did come across a reference to a folder called 'Resource-iPad' but have not been able to dig up much info in that regard.
Both the device and simulator seem consistent. I am targeting iPhone/iPad. Resources are in the root of main bundle, etc.
So, I must be missing something obvious, but I am not sure what and that is where you guys come in.
Thanks in advance,
Tom
If your app is universal, make sure you have two images for the iPad version -- one named "Default-Landscape~ipad.png" and one "Default-Portrait~ipad.png". Be careful of the tilde vs. dash in the names.
If it isn't universal, then just "Default-Portrait.png" and "Default-Landscape.png" should work. Not sure why it isn't working for you. Maybe having "Default.png" and "Default-Landscape.png" isn't an acceptable combination for the OS, in which case change Default.png to Default-Portrait.png
I know that most (if not all) landscape Splash Screens are made by rotating the picture 90°. This usually reflects the intended orientation once the app loads, and helps the user turn their iOS device accordingly.
Related
I have a game we're trying to release in the app store for iphone and ipad, and while it works fine on all of our devices (a handful of iphones and ipads), when the app store reviewers try it the actual viewport they see is highly cropped and distorted.
This is an example options screen that the reviewer saw:
This is what that options screen looks like for us on an equivalent aspect ratio/resolution:
As you can see, it's just a small, off-centered square for them, surrounded by black. But we've tested this on devices like an old iphone 5 up to big ipads and have never seen anything like this, the game takes up the full screen and the aspect ratio is correct and not distorted or stretched.
One important detail is this is entirely an OpenGL and SDL program, not using any Apple UI frameworks at all. The render size is determined by SDL_GetRendererOutputSize(), which then is used in glViewport(), and the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag. This so far has seemed to work with both retina and non-retina physical devices.
Also all of the screenshots they've given us look the same, same little square viewport surrounded by black, so I originally thought they were cropping them on purpose to highlight specific components of the screen, but this appears to be just exactly how it looks for them as this square is in the same position in each screenshot. I've asked them for more information on their devices but they wouldn't tell me.
We also have the program set to only ever use landscape, not portrait, but the weird thing is that with the way our UI reflows, the only way to get that button to look squished the way it does there is if the game was somehow still rendering in portrait, as seen this example shot I took by forcing it to run in a very tall portrait window:
I don't even know where to begin to try to figure out what's going wrong for them though, because as I've said, everything looks fine when running in an emulator and everything looks fine when we've run it on several physical devices. Is there some build or release configuration I could be missing? Some OpenGL setting I should check? I'm just hoping this problem looks similar to something someone else has encountered before.
If you are on an equivalent device, then another thing that may differ is the accessibility settings. Search for display zoom in settings. Also, try locking the iPad into portrait mode before launching your app to try and reproduce.
Note the little double arrow icon in the lower right corner of the reviewer’s screenshot. I don’t know what that is, but it looks like it could be some kind of screen zoom or accessibility mode. Perhaps they can answer what it does, and how to enable it for yourself.
To follow up with the solution that worked for me, I noticed that in my project's General settings in Xcode, under Deployment Info, I had only checked iPhone and not iPad. What I've since learned is that without that checkbox, some iPads will have to run in an emulation mode, which may have been the source of our problem. Deploying a new build with that checked (as well as "requires full screen"), it rendered exactly the same on our own iPads, but the app was subsequently approved with no further problems. I had made no other changes to the program, so my assumption is that that setting likely fixed it.
I dont quite remember what change I made but the whole UI seemed to be magnified for my ios app including font sizes , image sizes. Strange thing is the time , battery power ad network connection symbols which are usually shown on top have also magnified. I cant seem to figure out why . Can someone please advise ?
I have already tried playing with size classes ( with / without for each VC ) and it dint work
It may be running in the 4" compatibility mode, which was to allow older apps to run on the newer 6 and 6+ phones full screen. you might need to change your splash screen of you app to have all the sizes to fix this, if you dont have it already
I have an iPad app that I'm converting to a universal app to show on phones. It has both a tab bar and a navigation bar, and my problem is that they are both way too big on the phone. I could swear I heard Paul Hegarty (from the iTunes U class from Stanford on Swift app development) mention a switch or trick somewhere that would cause the bars to adapt to the iPhone, but I can't find it.
Here are screenshots of my apps bars, vs the Photos app in the iPhone 6 simulator to show what I'm talking about.
Not a huge difference, but significant on a small phone screen.
My fonts are also way to big, which is confusing since I have them set to the system "headline" or "body" options for all size classes, but that may be a separate issue.
Any help is greatly appreciated!
App written in Swift, using storyboards for iOS8, btw.
Edit:
The more I look at this, the more I'm convinced it's not related to the bars, but the entire app - the fonts and everything. The whole app appears to be zoomed in to 120%, which is subtle, but looks really bad and wastes space.
I have also now seen this in a second app - the Apple DateCell sample. It also appears 'zoomed in' when run on the iPhone 6 simulator.
Edit 2:
This effect is even more exaggerated on the iPhone 6 Plus simulator - everything is even more 'zoomed in' looking - the top and bottom bars are almost twice the height they should be. This can be seen by downloading the Apple DateCell sample and running it.
Edit 3:
ARGGGG, all this time wasted, and it was due to the launch screen image - why on earth would a launch screen image not being set cause the entire app to scale?
I finally figured this out - it was related to the launch screen image. Apparently if it's not setup right, the whole app scales on the iPhone 6 and 6 Plus for some reason. This question is what pointed me to the answer.
For me, I had to both create a LaunchScreen image in Assets, and set it in the project file, and ALSO select the launchScreen.xib as the Launch Screen File in the project. I don't have a real launch screen yet, so these are both just empty or defaults in my case.
I have heard a few conflicting comments regarding the default orientation of the iPad.
Some say it is portrait (how I tend to use my iPad), however some say it is landscape.
I have this sort of thing in my CSS to target elements when the device is in portrait mode, however I find I don't have the same sort of scaling problems with landscape and hence have no need for the media query below.
#media all and (orientation:portrait) {
}
I can't find anything anywhere that says for sure what the default orientation is for the device. Is there one?
There is no default. Both are allowed and equally important. The fact that you only have problems with portrait is most probably just a consequence of this specific site's design, for others you'll have to do the same on landscape.
Since landscape presents a 1024px wide browser to the user it's also less probable to cause issues since desktop sites are historically nearly always 960 to 1050 pixels wide as well. That doesn't make it the 'default' though, just less likely to cause problems.
It's actually identical to asking what the default screen size is for a desktop browser - it doesn't have one, you can resize it at will. Rotating your iPad is for all intents and purposes just that, a sudden resize of the browser.
I'm about to submit my first iPad app, and I have 2 questions regarding to Default.png images.
I would prefer a "splash screen" showing some artwork of my app, instead of the UI as if it was loaded, the app is a bit heavy and I've seen the users dispair when the UI is apparently loaded but it's not working. Does anyone know if apple is accepting apps with "splash screens"?
I want to provide a Default-X.png for every orientation, I've read the iPad programming guide, my question is, is "Default-LandscapeLeft" a Default image rotated 90 degrees clockwise, and "Default-LandscapeRight" rotated 90 degrees counter clockwise?
I'm asking this because I don't have an iPad yet to test this on.
Thank you a lot in advance.
Some are accepted, some are not, it doesn't all depend on that. However, it is recommended that you avoid the heavy loading times that would require a splash-screen. You could find a compromise by showing an image of a faded-out version of your working UI. If you need initial loading activity, consider deferring this loading stage after the Default.png is displayed, and use a view with similar aspect, but with some sort of progress indicator.
You don't need an iPad to test it, you can use the simulator, it can be rotated.
Take a look in the App Store, most apps use a splash screen rather than a UI capture, despite what the UI guidelines say.
And you are correct about the Default.png layouts, although left and right can be the same image if you wish.
About Interface Orientation, I have not tested that yet. But if I imagine the iPad in normal portrait position (being the exit button at the bottom)
I would think that Default-LandscapeLeft is iPad turned counter-clockwise while Default-LandscapeRight is clockwise.
Unless you have a clock which is turning backwards... :-)
Cheers