I am just finish my app for iPhone, now I have to convert it for both iPhone and iPad. I can check the device on runtime. but the problem is that. I don't know what should be size of custom navigation bar (320 * 44 I used in iPhone) ,custom tab bar (320 * 44 i used in iPhone), buttons,table background and my more images size for iPad.
I googling but not get the perfect answer in one place. till now i understand only that image name concept
devices without retina:
ImageName.png - For iPhone/iPod
ImageName~ipad.png -- For iPad
devices with retina display:
ImageName#2x.png - For iPhone/iPod
ImageName#2x~ipad.png -- For iPad
can any one provide me links from where I get the all information about image size and resolution for iPad and retina display. like splash screen , icon size , navigation bar size, tab bar size, manage custom images for buttons for both iPhone and iPad etc
It is hard to describe my all image size and resolution problem in this question, but hope you guys understand my problem
Many Thanks.
Here you go, from the Apple Developer Documentation: Custom Icon and Image Creation Guidelines
Also: App Icons on iPad and iPhone
Related
I have a question that may sound odd, but being somewhat of a newbie, I am guessing no question is a stupid question...
Do I need separate storyboards for all four devices?
Right now I have two storyboards, one for iPhone and one for iPad, but what I get my view frame it always shows the size of the device, not the retina device. So for example on the iPhone my view size is 320x460, and for iPhone Retina it shows the same... likewise for iPad.
Thanks
No, you don't. Yes it's the same resolution for the developer point of view. iOS will make all the adjustment. The only important issue is that if you use images in your app bundle (like tab icons) you have to add one for not retine a one for retina (with double resolution). For example if you have icon.png of 24x24px, you have to add icon#2x.png of 48x48px. iOS automatically will replace your icon for the "#2x" filename in retina divices.
You can differentiate the graphic content of your application, but the views / storyboard for the moment I do not think you can.
If you want to take advantage of the resolution of retina screens you can use the #2x trick.
This consists of the following, we give the example of the application icon_
Icon.png ( default icon for the iphone at 57x57 pixels )
Icon#2x.png ( default icon for the iphone with retina display at 114x114 pixels )
Icon~iPad.png ( default icon for the ipad at 72x72 pixels )
Icon~iPad#2x.png ( default icon for the ipad with retina display at 144x144 pixels )
This trick is useful for all your graphic content and no requires extra code when you make your interfaces and your code. When you have to specify the graphics file to be used, always specify the file which does not have the "#2x".
I hope that is helpful.
I am developing and app for iPhone which uses graphics for retina and non-retina displays.
Every UIViewController displays both the status bar and the navigation bar.
The views' simulated metrics values are set correctly for the above options.
The issue I am facing is that the buttons are migrating about 30 pixels when the app runs on iPhone 4. The resize settings of all the GUI objects are set to default.
Could you help me with this issue?
Thank you,
Andrei
Are the #2x version of the images exactly twice the resolution of the non-retina versions?
Different sizes can cause the images to change places between displays.
Can you check the value of the frames of buttons both on 3GS and iPhone 4 and see if they are the same?
How shall I manage to make a default image for my iphone application that is large enough for the Retina screen? The screenshots I take with the Organizer in XCode is 320px x 480px, however how can I manage to get a screenshot twice as large? It is just a picture of the UINavigationBar, empty area in the middle and a UITabBar at the bottom with all content removed.
Thanks in advance.
To take a simulator screenshot, use Ctrl+Apple+C. Then paste the image into Preview (menu/File/New from clipboard) and save. That will give you just the screen, sans the iPhoney window border. If you want one with the border, use Grabber.
For a Retina emulator, set the simulator to iPhone 4 mode. Menu/Hardware/Device/iPhone (Retina). Just tried - it works.
The easiest way is to run the app on a retina device and press both buttons at the same time to take a screenshot.
However, if you don't have access to a retina device, there is a great FREE program here: http://www.curioustimes.de/iphonesimulatorcropper/ that can take screenshots directly from the simulator. For Retina images make sure your simulator is set to iPhone 4 and that your screen resolution is set high enough to display it in Retina.
I appreciate the help, however I do not have a Mac/PC that has the resolution that I need to display the iPhone 4 simulator properly(high resolution, apparently). If you have, the answers given is perfect, however my solution was to download this:
http://www.teehanlax.com/blog/2010/08/12/iphone-4-gui-psd-retina-display/
and then resize components to 640px x 960px (minus the statusbar).
I have a universal iOS app with a custom view that has three buttons, each with an image background that extends to the sides of the screen for each orientation (portrait and landscape). The heights of each of the three buttons are the same and all three buttons take up the whole screen. So it looks simliar to this layout (image on the far right).
Since the widths and heights of each button are the same, I need to calculate how big (in pixels) I need to make each button image in order to support both orientations of the iPad and iPhone. On top of that, I also need to create higher res images to support the new Retina display. My questions are...
How do I calculate the resolution these images need to be for...
iPad in both portrait and landscape mode
iPhone in both portrait and landscape mode
iPhone with Retina display
Instead of having two sets of images to support both Retina and non-Retina displays, can I just use one hi-res set that will be scaled down to the non-retina displays? if so, is this a good idea?
If I add a navigation controller and/or a toolbar, what are the heights of these two view objects so I can adjust the heights of my images?
Thanks so much in advance for all your help! I'm going to continue searching for these answers right now.
Good info on porting apps / graphics to retina display is here
Essentially Apple created a new unit for graphics called "points" and if you add additional images to the bundle and use new API you can automagically load one or the other image.
Graphics development for iPhone4 and old iPhones was changed in several ways:
The concept of point was introduced
to replace pixel.
Methods of UIImage will load high
resolution resource files with #2x
in the file name.
Scale factor was added to UIScreen,
UIView, UIImage, and CALayer
classes.
So if we handle CGImage carefully, it's not hard to support the high resolution Retina display of iPhone4.
I have several questions about non-native iPad app in iPad 2x mode:
Could all the changes from old
iPhone to iPhone4 (#2x resources
auto loading, point concept, scale
factor) be applied to iPad 2x mode.
The scale of app on iPad can be
changed. How can I handle it?
With The new iPad sporting Retina Display you will need another set of images for some items such launcher icon, launch images (splash screen).
For example:
The launcher icon for Retina Display on iPhone/iPod Touch is 114 x 114 but on The new iPad the same icon for Retina Display is 144 x 144.
Other example:
On an Universal App, for the launch images (splash screen) you'll need an image set for phones/music players:
Default.png (For old devices)
Default#2x.png (For phones/music player with retina display)
Another image set for Tablets:
Default-Portrait~ipad.png (For original iPad and iPad 2)
Default-Portrait#2x~ipad.png (For the new iPad with retina display)
Default-Landscape~ipad.png
Default-Landscape#2x~ipad.png
The "#2x~ipad" will work on the new iPad in the same way "#2x" worked for the phones and ipods, but will be relative to the old iPad image set.
Unfortunately, all of those content scale functions were added in 4.0, so I don't think there's any way to use the iOS4 stuff that you're asking for.
The iPad 2x mode is just a way to run iPhone-only apps on the iPad's larger screen. If you want to take advantage of iPad's larger screen, all you have to do is create a universal binary (i.e. one that contains views for both iPhone and iPad).
There is no way to get the iPad 2x mode to display your iPhone retina level content automatically—Apple do not support this... presumably as they want people to put effort into developing iPad-specific interfaces for their apps.