О разрешении экрана IPhone4 - PullRequest
5 голосов
/ 05 июля 2011

Я прочитал из http://www.apple.com/iphone/specs.html, что экран IPhone4 имеет разрешение 960 х 640 пикселей при 326 ppi.

Но в симуляторе Xcode IPhone4.3, когда я манипулирую экранными объектами, печатаю[UIScreen mainScreen] .applicationFrame, это 320 * 480.

Так что, если я хочу использовать картинку в качестве фона основного экрана моего приложения, какой размер мне следует использовать?640 * 960 или 320 * 480?

Или какие изображения следует использовать?Размер изображений может сильно повлиять на детали.

Ответы [ 3 ]

5 голосов
/ 05 июля 2011

Вы можете использовать оба.

Если вы хотите разрабатывать приложения для Retina Display (iPhone 4), вам следует использовать изображение с двойным разрешением (640x960), а затем, когда вы создаете UIImageView, вы делите размер на 2.

CGRect rect = imageView.frame;
rect.size.width /= 2;
rect.size.height /= 2; 
imageView.frame = rect;

Кроме того, у вас есть возможность иметь изображение с @ 2x в названии, например myimage@2x.png (640x960).В этом случае вам не нужно делить размер.Используя этот способ:

UIImage * img = [UIImage imageNamed:@"myimage.png"];

Ваш img var уже разделил размер, а при развертывании на iPhone4 он имеет разрешение Retina Display.

3 голосов
/ 05 июля 2011

Вы должны создать два изображения для одного фона.

1-е изображение = background.png размеры = 320х480
2-е изображение = background@2x.png размеры = 640x960

iPhone автоматически использует изображение «@ 2x» с дисплеем сетчатки.

Совет. При создании этого изображения создайте изображение размером 640x960, а затем просто измените его размер наполовину, когда закончите.

Примечание: это работает одинаково для ВСЕХ изображений. Кнопка, изображения, фоны и т.д ..

0 голосов
/ 06 июня 2012

Один. (не оба)

Лучше всего сделать один , потому что ваш пакет приложений меньше при загрузке и проще в управлении в XCode. Всегда создавайте изображения размером Retina пикселей.

Почему?

Как сетчатка, так и стандартные пиксельные дисплеи используют одну и ту же систему точек даже при разных разрешениях экрана. Например, именно поэтому на iPhone - при запросе window.frame.size .. - возвращает 320X480, даже если у iPhone есть дисплей сетчатки. iOS размещает изображение на месте в соответствии с точечной сеткой независимо от разрешения изображения. Это разрешение изображения может быть в состоянии обрабатывать как стандартные, так и сетчатые дисплеи.

Поэтому всегда создавайте изображения, размер которых соответствует пикселю Retina.

Не стесняйтесь распечатывать изготовленную на заказ графическую бумагу (с размерами и часто используемыми компонентами в комплекте), чтобы помочь набросать ваши виды (не все должно быть сделано в цифровой форме: D). http://achim.us/eli/iOS_Graph_Paper.pdf

...