Подтвердить что ты не робот

Каталог ресурсов конкретного устройства Xcode 6

Я пытаюсь обновить свое приложение для новых устройств 6 и 6+.

Я добавил изображения запуска для новых размеров iPhone (6 и 6+). В каталоге активов есть записи для 6 и 6+. Там нет проблем.

У меня также есть полноэкранные изображения с перекрытием, которые мне нужно добавить. У меня уже есть изображения для них в @2x (iPhone 4s) и R4 (iPhone 5 5s 5c). Я создал изображения с новыми разрешениями, но я не уверен, как их добавить в набор изображений.

Когда я захожу в каталог активов, я могу выбрать конкретный продукт в наборе изображений, и я вижу записи для iPhone, сетчатки-4 и iPad. Есть лунки для перетаскивания для 1x, 2x, Retina 4 2x и 3x.

Мой вопрос - где я должен поместить изображение для iPhone 6? Очевидно, что 3x для 6 плюс. Я не вижу, как можно использовать сетчатку-4 для iPhone 5 и iPhone 6, потому что размеры экрана различны.

Что мне не хватает?

4b9b3361

Ответ 1

Я уверен, что это ошибка в Xcode 6. Когда вы загружаете образ из набора изображений в каталоге активов, вы всегда будете получать 3-кратную запись для iPhone 6+, независимо от того, масштабирован или стандартный режим отображения. Для iPhone 6 вы всегда будете получать 2x в обоих режимах. Для iPhone 4s вы также получите запись 2x.

Все эти устройства имеют разное масштабирование и соотношение сторон, поэтому это неприемлемо для пиксельных точных изображений. Мои изображения полностью полноэкранные и предназначены для наложения, поэтому я видел неправильное размещение в увеличенном режиме.

Я работал над этой проблемой, создав два набора изображений:
1) iPhone 6/6plus в стандартном режиме
   Изображение 1242x2208 в записи 3x
    750x1334 в записи 2x

2) iPhone 6/6Plus в увеличенном режиме или iPhone 5
   1125x2001 для входа 3x
    640x1136 для входа 2x     640x1136 для записи R4-2x

Чтобы выполнить эту работу, мне нужно определить, является ли устройство одним из новых, и если они находятся в увеличенном режиме. Основываясь на этой информации, я загружаю изображение из правильного набора изображений.

Это код, который я использую, чтобы определить, является ли устройство одним из новых в увеличенном/стандартном режиме:

UIScreen *screen = [UIScreen mainScreen];
if (screen.scale == 3 && screen.currentMode.size.width == 1242 ||
    screen.scale == 2 && screen.currentMode.size.width == 750) {
    self.overlay = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StdImageSet"]];
} else {
    self.overlay = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ZoomedImageSet"]];
}

Это уродливо, и я не хочу этого делать, поскольку наборы изображений должны исключать такой код. Я не видел лучшего способа обойти это, и я подал радар (радар 18463463).

Ответ 2

Я нашел это полезным: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

Кажется, iPhone 6 будет использовать изображение с повторной выборкой @2x (iPhone 5). Кроме того, свойства набора изображений (панель утилит) позволяют переключаться между ячейками "Universal" (x1, x2, x3) и "Device-specific".

Ответ 3

Это действительно раздражает. Для настройки, характерной для устройства, все мы ожидаем меню, например, в LaunchImage Set, разные заполнители для разных размеров экрана.

Ответ 4

Я помещаю здесь некоторые из моих наблюдений, которые я сделал для устройств iPhone (может быть, кому-то это будет полезно):

  • iPhone 4S - 2x Any/Any плитка
  • iPhone 5 - 2x 1GB/Any плитка
  • iPhone 5S - 2x 1GB/Any плитка
  • iPhone 6 - 2x 1GB/Any плитка
  • iPhone 6 Plus - 3x 1GB/Any плитка

Для этого я проверил Устройства - iPhone, Memory 1GB. Как вы можете видеть, нет различия между графикой между iPhone 5/5S/6. Может быть, играть с настройками для Metal 1v2/2v2 можно было бы отличить, но мне кажется, что я слишком схожу с ума. Ссылка на знание начинается в 10:50

Что я получил от WWDC прямо сейчас, мы должны думать не о разрешении/настройке ориентации устройства/устройства, а сосредоточиться на классах размеров (которые одинаковы для iPhone, кроме 6 Plus), но если кому-то все-таки по каким-то причинам понадобится графику, специфичную для устройства, и хочет использовать каталоги активов (что отлично), то здесь вы получаете то, что я нашел в данный момент (Xcode 7).

Ответ 5

Просто нашел новое решение для этой проблемы. Используйте изображение сетчатки 4 для 2x и установите полноэкранную модель содержимого изображения для масштабирования аспектного заполнения, чтобы он работал как на iPhone 4, так и на iPhone 6.