Нет опции Retina 4 в xcode 7, тогда как мне установить полноэкранные изображения в активе, чтобы они правильно отображались в 4s/5s и iPhone 6?

В xcode 7 это не вариант для сетчатки 4, согласно этому, Apple удалила его на цель. Я отредактировал Contents.json, чтобы вернуть его, но эффект уже не тот! Я помню, что в XCode6/pre-iOS9 iPhone 6 будет использовать изображение Retina 4, поэтому мне нужно установить только одно полноэкранное изображение 2x для iPhone 4/4s, одно полноэкранное изображение Retina 4 для iPhone 5/5s и 6.

Я думаю, что использование Retina4 для iPhone 6 действительно имеет смысл, а 2x — нет! Потому что 1334/750 составляет около 1,778, что близко к 1136/640 = 1,775, а 960/640 = 1,5. Мои изображения 640*1136 правильно отображаются на iPhone 6, а изображения 640*960 искажены.

Но с Xcode 7 даже я вернул опцию retina 4, iPhone 6 по-прежнему использует изображение 2x (640 * 960) вместо изображения retina4 (iPhone 5/5s действительно использует retina4 и теперь показывает правильно). Я попытался изменить тип устройства с iPhone на универсальный, то же самое.

Итак, мой вопрос: если Apple намеренно удалила retina4, то как мне установить полноэкранные изображения в xasset, чтобы они работали на iPhone 4/5/6? Я говорю только о полноэкранных изображениях. Я понимаю, что для неполноэкранных изображений использование 2x имеет смысл.

Кстати, я не говорю об AppIcon и LaunchImage (retina 4 все еще существует и работает). Я не хочу писать дополнительный код, чтобы заставить его работать (на самом деле это то, чем я сейчас занимаюсь, например, Полноэкранные изображения на iPhone 6 с каталогами объектов). Так возможно ли, что я просто установил актив, чтобы он работал?


person Qiulang    schedule 29.10.2015    source источник
comment
Поэтому я действительно не понимаю, почему Apple хочет, чтобы мы использовали 2x для iPhone 6, потому что экран iPhone 6 имеет 2-кратное разрешение.   -  person matt    schedule 05.11.2015
comment
Но с 4/4 также используйте 2x, вы столкнетесь с проблемой, о которой я сказал!   -  person Qiulang    schedule 05.11.2015
comment
Но никто здесь не может ответить на вопрос, почему яблоко. Это не вопрос программирования. Это вопрос о внутренней работе очень секретной корпорации. Трудно понять, как любой ответ может удовлетворить вас. На самом деле вы не задаете вопрос; вы просто жалуетесь. Это нормально, но не в Stack Overflow, пожалуйста.   -  person matt    schedule 05.11.2015
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это не вопрос программирования, и в какой бы степени это ни был вопрос программирования, на него невозможно ответить.   -  person matt    schedule 05.11.2015
comment
мой вопрос: если Apple намеренно удалила retina4, то как мне установить изображения в xasset, чтобы они работали на iPhone 4/5/6?   -  person Qiulang    schedule 05.11.2015
comment
Мои изображения отлично работают на iPhone 4/5. Вы не дали причин, почему они не должны.   -  person matt    schedule 05.11.2015
comment
Но как насчет iPhone 6? Как я могу заставить это работать, и это был мой первоначальный вопрос.   -  person Qiulang    schedule 05.11.2015


Ответы (2)


Я поднял тикет в службу технической поддержки Apple, и они подтвердили, что в настоящее время нет возможности это сделать. Я должен написать код для него. «В настоящее время каталог ресурсов не может загружать изображения для конкретных устройств. Если вашему приложению необходимо поддерживать изображения для конкретных устройств, вам потребуется реализовать собственный код для определения размера экрана и выбора подходящего изображения. Вы можете подать заявку на улучшение запрос, используя следующую ссылку. Обязательно объясните свой вариант использования этой функции ".

person Qiulang    schedule 13.11.2015

Вы можете изменить JSON, определяющий набор изображений.

  1. В Finder перейдите в папку с набором изображений. Вы можете щелкнуть правой кнопкой мыши набор изображений внутри Xcode и выбрать «Показать в Finder».
  2. Откройте файл Content.json
  3. Добавьте определение «Retina 4 2x» в Json в массив «images».

    { «идиома»: «iphone», «подтип»: «retina4», «масштаб»: «2x»},

Например, полный пустой файл, готовый для iPhone:

{
  "images" : [
    {
      "idiom" : "iphone",
      "scale" : "1x"
    },
    {
      "idiom" : "iphone",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "subtype" : "retina4",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}
person NES8    schedule 28.04.2016