I apologise if this has been answered but I can't seem to understand no matter where I look. I have been trying to make a Chess game using SpriteKit in Xcode. I don't understand the 1x, 2x and 3x options in the assets folder.
It seems like the image is the smallest when I put it in 3x, which seems counter-intuitive. Also, what resolution is best to design for? It doesn't seem like the actual iPhone resolutions are used in the iOS simulator.
Thanks
You get a great overview from apples docs:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html
Basically, you need images with higher resolution for devices with higher resolution. If an icon is 32x32 pixel for iphone 3, you add an 64x64 image for iphone 4 (retina, #2x) and an 96x96 image for iphone 6 (even higher resolution, #3x).
1x , 2x , 3x is different size of images according to different phone's resolution.
You can find imagesize according to device resolution in below link.
IconMatrix
Basically,
#1x images are for the iPhone 3GS - 'standard' resolution devices (3.5" screens)
#2x images are for the iPhone 4 and 4S which contain 3.5" Retina screens and also used for the iPhone 6.
Retina 4 #2x are for the iPhone 5 and 5s (4" Retina screens)
#3x images are for the new iPhone 6+,iPhone 6S+ (5.5" super-Retina [3x] screen)
Note :- As describe by apple in document
For all images and icons, the PNG format is recommended
Also, what resolution is best to design for?
The biggest resolution you will need. In most cases, #3x. So if the image "is" 10x10, design it being 30x30 for the #3x files, and scale down to smaller resolutions.
• 30x30 is the pic#3x.png
• 20x20 is the pic#2x.png
• 10x10 is the pic.png
The simulator uses the image according to the device it is simulating. So the iPhone 6S+ will use #3x if available.
PNG is the recommended extension, and you can use http://tinypng.com to reduce the file size, including splash screens.
Related
I've a question about resolution of Iphone 6 and Iphone 6 Plus.
I would like to know something about #x2 and #x3, i really need to be sure !
If i've a fullscreen UIImageView, display on a Iphone 6(667x375 points) the size of the containing UIImage have to be 1334x750 because the size in points are 667(#x2)x375(#x2), right?
So if i understand, the UIImageView on Iphone 6Plus in fullscreen is 736x414 but the resolution is #x3 then the UIImage in the UIImageView have to be 2208x1242 because the size in points is 736(#x3)x414(#x3), no ?
Then in a general case, i only need to know what is the size of my UIImageView and if the resolution is #x2 i multiply the size x2 and if the resolution is #x3 multiply the size x3?
Guys i really need a confirmation and if i'm wrong, please, explain me why !
I'm sorry if you think my question is really stupid but i need to understand how it works.
Cordially :)
Lets go for a ride of #1x, #2x and #3x image scaling and content viewer size according to different resolutions in iPhone.
Let understand some basics first
Device Resolution
================================
iPhone 4 & 4S 640×960
iPhone 5, 5C & 5S 640×1136
iPhone 6s 750×1334
iPhone 6P 1242×2208
Resolution reference from this site.
Now if how to use images with #1x, #2x & #3x.
Lets say you have an imageView in with size of 100W x 100H, to display images properly on all the devices with appropriate resolution without stretching or pixelation your image, one need to create 3 set of images as below according to device.
iPad 2, iPad mini supports #1x images, required image of size 100x100(WxH)
iPad, iPad mini supports #2x images, required image of size 200x200(WxH)
iPhone 4S, 5 & 6 supports #2x images, required image of size 200x200(WxH)
iPhone 6P supports #3x images, required image of size 300x300(WxH)
Though your UIImageView size is 100x100 for all the devices, but image displayed in different devices is different according to their resolutions.
Following size Table will give you more clarification, read more about it in apple documentation here
I hope it clears confusion about different resolution images for different devices :)
There seems to be a confusion for me regarding Sketch 3 workflow and exporting Artboards for all iPhones in Sketch 3.
I understand that 1x resolution is for iPhone 3GS and below, 2x for
iPhone 4/4S/5/5S/6/6S and 3x is for 6Plus. So does that mean If I
create Artboards for iPhone 6 and export in 2x it would be for iPhone
4/5/6 and if I export at 3x it would be for 6plus regardless of what
dartboard I'm using?
Or should I have different dartboards for each iPhone and export #1x #2x and #3x for each of them?
I have been looking for a solid answer for days but could not find one that actually works. According to this link :
"if you were designing at 1x with the 6Plus (414x736) art board, exporting your assets at 1x would be for 3G/3GS devices, 2x would be for 4/4S/5/5S/6 devices, and finally 3x would be for the 6Plus."
However after I tested that I get different results:
Exporting iPhone 6Plus (414x736) at 1x = 414x736 2x = 828x1472 and 3x = 1242x2208. Shouldn't that be 750x1334 for 2x ?
What if I want to use PDF vector assets so I don't have to export 1x, 2x and 3x separately. Which Artboard should I export the 1x PDF from?
Overall I'd love to know what's the best approach to design and export for multiple iPhones.
Thanks in advance! :)
The density selection in Zeplin is a way of telling the app that, the Sketch artboards are in #1x or #2x or #3x. So, Zeplin will calculate the assets size based on that. You don't have to work on different sizes (#1x, #2x, #3x & PDF).
If your Sketch artboard is 1242 x 2208 pixels (iPhone 6Plus, 6S Plus, 7Plus) then you have to choose the density as #3x in Zeplin.
So make sure you select the right density in Zeplin.
Zeplin – Choosing right screen size while importing from Sketch?
I'm using the smaller to bigger approach. If your design work on the smaller screen it should be fine on other.
So I start with a 375x667px artboard and then export the assets as #1 #2 for iPhone and #3 to sizes plus.
We are trying to make an app for all devices ,designing it on code only.
I could see that the suffix are :
#2x~ipad for ipad retina
#2x for iphone5 and iphone6
#3x for iphone6+
But there is something that i dont get, how is that the files for iPhone5 and 6 have the same suffix and the same name ? these images should be in a different size, and so you cant give them the same name ?
We have created images for iPhone6 with #2x and they seems great on the iPhone6 simulator, but on iPhone5 things dont look good and cover each other .
Cant you separate these files with a different suffix?
I have read this :
Image resolution for new iPhone 6 and 6+, #3x support added?
It is because iphone 5 and iphone 6 (not including the plus) have the same pixel density.
So basically a 40x40 image will look the same on both screens and will take the same space. You will just have to adjust positions to cover for the extra space on the iphone 6 screen.
Images for the iPhone 5 and iPhone 6 are the same size, and the same DPI. So they share the same suffix (#2x). They don't need to be separated.
#3x is for the iPhone 6+ because it has a higher DPI and a larger size than the other phones. Please refer to the Human Interface Guidelines for Images.
You should be using layout to determine how your UI elements are laid out on the screen, and you should be using Auto Layout to make sure they look right on all devices, independent of aspect ratio.
The #2x, #3x image sizes refer to device families grouped by resolution. iPhone 5 and 6 are in the same family, and iOS will use the #2x image for both. The size and placement of the UI element which uses that image, however, has nothing to do with the size of the image itself.
I simply want to display a title page to a game. I want to use pre-rendered images. It needs to work with all iPhones and iPads. So far I am using these assets as screenshot below
I have used these sizes:
In 1x place image with resolution of 320 x 480.
In 2x place image with resolution of 640 x 960.
In Retina 4 2x place image with resolution of 640 x 1136.
In 3x place image with resolution of 1242 x 2207.
Only the iPhone 4 and 5's show correctly. Both 6 and 6Plus are completely wrong.
for iPad:
1x image of 760*1024
2x image of 1536*2048
Only the iPad 2 displays correct. The Air and Retina are completely wrong.
I have read through all the documentation I can find both on here and searching for hours on Google. I am unsure what simple thing I must be overlooking. Am I trying to do something that is not possible? I am only testing on the simulator and thinking it could be an issue with that?
Also I may have a misunderstanding then as I was under the impression that #3x was for iPhone 6 and 6+. If not, what are #3x for?
For some reason Image Sets in Asset Catalogs do not include a size for iPhone 6 or iPhone 6+, so when using a full screen image you may need to handle it manually via code.
What I'm doing (and it's not pretty but it works), is to include another Image Set for iPhone 6 (I all it imageName_47), and another one for iPhone 6+ (I call it imageName_55). Then in code, detect the screen size and swap the image to the best size. You'll only need the #2x version for the _47 one, and the #3x version for the _55 one.
Currently working on a universal SpriteKit project. I'll be supporting the following devices:
iPhone 4/s,
iPhone 5/c/s,
iPhone 6,
iPhone 6+
iPad non-ret,
iPad retina
I am confused on the iPhone part. I already have 4 versions for my background sprite for the 4 different screen resolutions of the iPhones. But which goes to which?
I know the 3x is for the 6+, and I think the 5/c/s goes to the Retina 4 2x, but I do not know where the iPhone4/s, and 6 go. Anyone know?
Side note, when I create a Launch Image inside my xcassets file, I am shown these options, which basically has all the device I am supporting. Just wondering why this is not also the case when creating an Image Set
Also how do you guys approach creating images/sprites for a universal application? Now that the new iPhone 6, and 6 plus are out, I have 2 more resolutions to support which is still confusing for me as I'm still a beginner.
This is a little confusing - here's how I understand it (this is in reference to the top image):
1x images are for the original iPhone through the 3GS - 'standard' resolution devices (3.5" screens)
2x images are for the iPhone 4 and 4S (3.5" Retina screens) and are also used for the iPhone 6.
Retina 4 2x are for the iPhone 5 and 5s (4" Retina screens)
3x images are for the new iPhone 6+ (5.5" super-Retina [3x] screen)
I believe that the iPhone 6 (4.7" screen) will use the Retina 4 2x images, but I would have to test it.
Side note, when I create a Launch Image inside my xcassets file, I am shown these options, which basically has all the device I am supporting. Just wondering why this is not also the case when creating an Image Set
If you compare the two images, the lower one has everything the upper one does, except for a 1x iPhone graphic. You don't need that if you're only supporting iOS 7 and above, since iOS 7 doesn't run on any non-Retina phone-form devices. To be honest, I don't understand why the top image has a 1x iPhone form graphic option - maybe because you checked the "iPhone" box in the sidebar?
Also how do you guys approach creating images/sprites for a universal application
For most non-fullscreen images (like a logo), you really only have 3 resolutions to support - standard (1x), Retina (2x), and the iPhone 6+ (3x). These are simply different quality of images, not really different sizes. So if you have a 10x10 image on a standard device, that would mean you need a 20x20 image on a Retina device and a 30x30 image on an iPhone 6+. On all devices, they would show up as a 10x10 image.
A great tool I used for managing different resolutions of icons is iConify.
I create them at the highest size I need (30x30 [#3x] for an image I want to be 10x10 on a device), then save it as a png and resize copies to 20x20 [#2x] and 10x10 [standard]. A better solution would be to create and use vector graphics, which would resize better to any size.
In 1x place image with resolution 320 x 480.
In 2x place image with resolution 640 x 960.
In Retina 4 2x place image with resolution 640 x 1136.
in 3x place image with resolution 1242 x 2208.
Images of Retina 4 2x will upscale to resolution 750 x 1334.
Images 3x will downscale to resolution 1080 x 1920.
You can also visit this links for launch screen images:
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
For all other images resolution and size:
https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/
https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/
https://developer.apple.com/ios/human-interface-guidelines/graphics/custom-icons/
How to use Image.xcassets:
https://www.youtube.com/watch?v=_36Y6rDcKP0&list=PLXCowKcXAVgrCe2Lezv0acRf4adQLshv2
Hope this will be more helpful.
If you have your launch images in an xcasset file, you can do the following in Xcode 6.
Select the launch image asset, select a specific resolution (1x, 2x, Retina 4, etc) and open the attributes inspector (see image below).
Under the "Image" section, you will have a "Expected Size" attribute.
Inside images.xcassets, you can add different devices support by right clicking as shown in the snap
Edit: Well, it doesn't seem working when I drag n drop images to placeholders. It gets messed up as shown next
I don't know why it is acting odd on my Xcode 6.4 though.
Edit#2:
I see a bug from apple here. I can select 'Universal' along with any device upon right click as you can see in the first image above. But via attribute inspector I can correctly select either 'Universal' or specific devices as shown here
Edit#3:
In Xcode 7 the attribute inspector has been changed and now it gives option same like the right click. So instead of either 'Universal' or specific devices, now it offers to select all.
There is one tool : AVXCassets Generator with which you can directly generate XCAssets file for all your icons and images just by one click.
hope you will like it.