In my app I am using images of size 155*155pts so I am supplying it with an image of 310*310px resolution. I know that I can use image.png [email protected] and [email protected] and then [UIImage imageNamed: image] to select the image appropriate for the resolution. My question is do I really need to include a lower resolution version of size 155*155px, won't the UIImageView it's displayed in just scale it appropriately? A similar question for the iphone6+, if I don't include the @3x version will it just use the @2x and display it as clearly as a standard retina screen would?
2 Answers
Even though there are plenty of answers at SO discussing this topic
(Google them) e.g. How to handle image scale on all the available iPhone resolutions?
Its just a recommendation to to use scaled up images with @2x and @3x in your app. You don't have to create them. From my experience in making apps, in almost all of them I have never used multiple images. I create one UIImage and use it for all the phone sizes. I then either use auto layout or manually adjust the width height of UIImages myself.
There is a reason I do that is lets say one of your sample1.png image is 1MB then you will need to create 3 of them.
- sample1.png
- [email protected]
- [email protected]
You just doubled or tripled your binary size which is bad for downloads. There always be users running non-retina devices and it would be shame to not support them. Can you only make retina enabled apps, of course you can and Apple will approve those as they will be testing your apps on the latest devices but the best approach is to support all devices.
@1x
) image set can be bypassed – if you don't want to add the@3x
set, the iOS8.1.1+ loads the@2x
set, before that version the@1x
set will be loaded for HD retina screens (but that was just a bug in earlier versions of iOS8, it has been fixed). – holex