Keyboard is scaled on iphone 7+ - ios

I have ported an old app and now using Xcode 8 to compile / run on iphone 7+. Everything is working fine except the keyboard looks scaled up (Larger than standard keyboard as seen in iMessages).
Attached is the image on iPhone 7+, first one is iMessages screen with its standard keyboard and second screen is my app with scaled up keyboard.
On capturing UIKeyboardDidShowNotification, I see that keyboard size returned is 320x253 on iphone 7+ which is what I also get while running app on iphone 5. Another test app developed in XCode 8 gives keyboard size of 414x226 on iphone 7+ and 320x216 on iphone 5.
It seems somehow the OS is treating my app as iphone 5 compatible only and display keyboard size that's supported by iphone 5.
iMessages and my app on iphone 7+

You need to add a properly sized launch images for all compatible devices. This is a tedious task. Since iOS 8, Apple supports proving a launch interface in the form of a storyboard or a XIB file, which the system uses to generate a launch image. This is the preferred method of supplying a launch image in modern iOS development, unless this pattern specifically does not fit your requirements (a custom launch image that is very specific to the size of the device).

Related

Custom font displays very bigger size in different simulator sizes (e.g iPhone 5c, 6s, etc)

I am working on iOS app, I added some custom font to my app. After applying that font, its working fine in iPhone 7 Plus, but if I run that app in iPhone SE or 6S, 6 Pus, showing very big font sizes compare with 7 Plus. Due to this, my view getting very worst layouts. Even app icons also showing big on above-mentioned devices simulators. Really strange, I am checking with Simulator as I don't have the device now.
By the way, we are not using constraints, we are using auto resizing.
Xcode version : Xcode 8,
Simulator iOS 10.2
Can anyone suggest me how to fix this?
I had the same issues when I was not using auto resizing properly, try to figure out the auto resizing once again and see the result for different devices on storyboard itself.

iOS app layout on iPhone 6

I have currently developed an iOS app. The deployment target is 7.1 and I am targeting iPhone5/5s and iPhone6/6s as main devices.
After I have finished development, my app got rejected stating that it does not support the device screen size of the iPhone6.
I have tested this app using the iPhone6 simulator and my real iPhone 6 and everything looks correct and scaled.
I am using AutoLayout
I have set constraints
I was using a LaunchScreen but after i read many posts i deleted the LaunchScreen and added Launch Images with all the sizes and with the correct default names.
The app review team provided me with screenshots that shows my app running on an iPhone6 however with the layout dimensions of an iPhone5s (the layout is not scaled, there is a large white border)
Could you please guys provide me with any tips?
I was using a LaunchScreen but after i read many posts i deleted the LaunchScreen and added Launch Images
That's the problem. You must use a launch screen, because otherwise your app does not run natively on iPhone 6; instead, it is treated as an iPhone 5 and scaled up, exactly as Apple's screenshots showed you. Apple will no longer accept that; you must run natively, so you must use a launch screen.
You need to add launch images of the below resolutions to support iPhone6. Pl. refer to the below url which clearly specifies the dimension of the launch images to be used.
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html

How to know an iOS apps COMPATIBILITY status using Xcode

As of know my app's compatibility status in AppStore is
"Compatible with iPhone, iPad, and iPod touch. This app is optimized for iPhone 5."
I want to make it compatible with iPhone 6 & 6+. So, i provided all the requirements for making my iOS app to compatible with iPhone 6 & 6+.
My question is:
I want to know my apps compatibility status before sending to AppStore Review process. So, is it possible using Xcode ?
first, you can run it in iPhone 6 Plus simulator, if the state bar is very fine, not to become big, then your app is optimized for iPhone 6+.
if your app doesn't optimize for iPhone 6, the screen you see is very terrible, just like small screen was dragged to 2x, like mosaic.
if you have friend who have iPhone 6 Plus, you can run it on the device.
for my app, I just delete the launch screen, and add a new one, then Xcode want me to add the launch image of iPhone 6 size, I did this, and run it on simulator, I found the screen didn't mosaic, the control recover the original size, not mosaic, what's more, it become chaos, because the size become small, screen have some blank areas.
then I use auto layout, restrain the control, make them fill all screen, now finish
my english is not very good, you can ask me if you don't understand it

iPhone app compiled with Xcode 6 on runs as Universal on iPad

I have got an app developed for iPhone family only, and I used to run it on iPad to test how it will look on iPhone 4s (since it launched with iPhone 4s resolution, size, and else '2x' round button for fullscreen support). However, now when I run it on my iPad with iOS 8, Xcode ignores all build settings and runs it as for iPad. My storyboard constraints were not projected for iPad screen.
I have:
Devices option set to iPhone on General tab in project settings
Main storyboard file name and Main storyboard file name are removed from Info-plist
All App Icons and Launch Images for iPad are deleted
In Launch Screen File the option Use Size Classes set to NO, and the assets are generated for iPhone only
Is that a normal behavior? I want to use my iPad as before to test iPhone 4s resolution. I am sure that my app won't become universal because of that, but nevertheless I think this is a problem.
The use of Launch Screen File in iOS 8.0, 8.0.1 and 8.0.2 will make you universal.
This is a know bug and fixed in iOS 8.1, for you only option is to use assets catalog with a launch images.
Or you can add the device modifier in the Launch file name, like <launchNib>~iphone.nib

iPhone-only app isn't iPhone only for some reason [duplicate]

I have got an app developed for iPhone family only, and I used to run it on iPad to test how it will look on iPhone 4s (since it launched with iPhone 4s resolution, size, and else '2x' round button for fullscreen support). However, now when I run it on my iPad with iOS 8, Xcode ignores all build settings and runs it as for iPad. My storyboard constraints were not projected for iPad screen.
I have:
Devices option set to iPhone on General tab in project settings
Main storyboard file name and Main storyboard file name are removed from Info-plist
All App Icons and Launch Images for iPad are deleted
In Launch Screen File the option Use Size Classes set to NO, and the assets are generated for iPhone only
Is that a normal behavior? I want to use my iPad as before to test iPhone 4s resolution. I am sure that my app won't become universal because of that, but nevertheless I think this is a problem.
The use of Launch Screen File in iOS 8.0, 8.0.1 and 8.0.2 will make you universal.
This is a know bug and fixed in iOS 8.1, for you only option is to use assets catalog with a launch images.
Or you can add the device modifier in the Launch file name, like <launchNib>~iphone.nib

Resources