Ответ 1
Объяснение imageWithContentsOfFile
содержится в связанной документации, а не в самой документации UIImage
:
На устройствах с экранами с высоким разрешением методы imageNamed:, imageWithContentsOfFile: и initWithContentsOfFile: автоматически ищут версию запрошенного изображения с модификатором @2x в его имени. Если он найдет один, он загрузит это изображение. Если вы не предоставляете версию изображения с высоким разрешением, объект изображения по-прежнему загружает изображение стандартного разрешения (если оно существует) и масштабирует его во время рисования.
Когда он загружает изображение, объект UIImage автоматически устанавливает свойства размера и масштаба соответствующим значениям на основе суффикса файла изображения. Для изображений с стандартным разрешением он устанавливает свойство scale равным 1.0 и устанавливает размер изображения в пикселях изображения. Для изображений с суффиксом @2x в имени файла он устанавливает для свойства scale значение 2.0 и половину значений ширины и высоты, чтобы компенсировать масштабный коэффициент. Эти значения пополам правильно коррелируют с точечными измерениями, которые необходимо использовать в логическом пространстве координат для рендеринга изображения.
Я не знаю, какая документация объясняет поведение pathForResource
.