Я знаю, что подобные вопросы задавали и раньше, но я действительно в ужасном положении.
Я создаю приложение, которое должно работать на iPhone 3G, iPhone 4 и iPhone 5.
Я новичок в разработке iOS, и до сих пор я написал большой объем кода пользовательского интерфейса, который просто работает на iPhone Simulator. Я сосредоточился на общем языке и функциях SDK, чтобы узнать об общей разработке iOS, и поэтому в основном игнорировал любую поддержку разрешения, кроме того, что мне предоставляет Simulator.
Теперь я столкнулся с требованием переносимости между этими разными версиями iPhone, и я очень смущен. Прежде всего позвольте мне рассказать, что я знаю о деталях поддержки экранов iPhone 3 и iPhone 4, и, пожалуйста, поправьте меня, если я сделал что-то не так (полностью игнорируя iPhone 5, на данный момент):
Система предполагает зону просмотра на основе 320x480 ТОЧЕК. В iPhone 3 фактический размер экрана такой же, но в iPhone 4 используется фактический экран размером 640x960 пикселей.
Мы кодируем и генерируем наши представления в соответствии с размером 320x480. Мы предоставляем изображение с нормальным разрешением (например, размером 100x100 some_image.png) и версию с высоким разрешением с суффиксом "@ 2x". (200x200 -размер [email protected]) оба в одном наборе приложений.
При вызове
UIKit
методов загрузки изображений, например методовUIImage
илиUIImageView
, система выбирает правильную версию наших изображений и загружает их в соответствии с текущим устройством (iPhone 3 или iPhone 4).
До сих пор я осторожно предлагал эти три шага для поддержки iPhone 3G и iPhone 4 с низким и высоким разрешением.
Допустим, у меня есть изображение размером 100x100, которое я собираюсь использовать в UIImage
объектах. Я также предоставляю версию с высоким разрешением 200x200 и думаю, что она будет работать как на iPhone 4, так и на iPhone 5 с суффиксом "@ 2x".
Но предположим, что у меня есть фоновое изображение размером 320 x 480, покрывающее весь фон, и я предоставляю версию 640 x 960 с суффиксом "@ 2x". также.
Но что будет с экраном iPhone 5 размером 640x1136? Должен ли я подготовить изображение с разрешением iPhone5 и загрузить его в if(IPHONE5 == true)
условном виде?
Как правильно с этим справиться?