Обратите внимание, что передача 0,0 в качестве масштаба приводит к UIGraphicsBeginImageContextWithOptions: с использованием contentScaleFactor главного экрана устройства. На мой взгляд, это самый простой вариант, чтобы наилучшим образом использовать любое разрешающее устройство, на котором вы находитесь. При этом автоматически будут использованы значения 1,0 для «обычных» устройств и 2,0 для устройств Retina. Хорошо и просто!

тствую,

Я работаю над приложением, вдохновленным примером ZoomingPDFViewer, который поставляется с iOS SDK. В какой-то момент я нашел следующий фрагмент кода:

// to handle the interaction between CATiledLayer and high resolution
// screens, we need to manually set the tiling view's 
// contentScaleFactor to 1.0. (If we omitted this, it would be 2.0 
// on high resolution screens, which would cause the CATiledLayer 
// to ask us for tiles of the wrong scales.)
pageContentView.contentScaleFactor = 1.0;

Я пытался узнать больше оcontentScaleFactor и что это делает. Прочитав всю документацию Apple, в которой упоминалось об этом, я искал в Google и так и не нашел однозначного ответа на то, что он на самом деле делает.

Вот несколько вещей, которые мне интересны:

Кажется, чтоcontentScaleFactor имеет некоторый эффект на графический контекст, когда рисуется содержимое UIView / CALayer. Это, кажется, относится к дисплеям с высоким разрешением (таким как Retina Display). Какой эффект делаетcontentScaleFactor действительно есть и на что?

При использованииUIScrollView и настроить его на увеличение, скажем, мойcontentView; все подпредставленияcontentView масштабируются тоже. Как это работает? Какие свойства делаетUIScrollView изменить, чтобы даже видеоплееры стали размытыми и увеличивать масштаб?

TL; DR: Как функция масштабирования в UIScrollView работает «под капотом»? Я хочу понять, как это работает, чтобы я мог написать правильный код.

Любые намеки и объяснения высоко ценится! :)

Ответы на вопрос(1)

Ваш ответ на вопрос