У меня есть UIView, который помещается как подвью в UIScrollView. У меня есть несколько дочерних представлений, состоящих из изображений, текста и кнопок в UIView. Чтобы получить приличную производительность прокрутки, я установил shouldRasterize = YES
на слой в UIView. Это отлично поработало в этой производительности, поэтому у меня гладкая прокрутка и не возникает проблема, так как моя графика статична после рисования. Однако проблема заключается в том, что когда я устанавливаю shouldRasterize, растрированные графики размыты и имеют низкое разрешение на дисплее Retina. Есть ли способ иметь графику высокого разрешения, которая растрируется для производительности?
Изображения с прокруткой и разрешением сетчатки в CALayer
Ответ 1
Кажется, мне нужно установить растеризациюScale для правильного значения для устройства следующим образом.
myView.layer.rasterizationScale = [[UIScreen mainScreen] scale];
Ответ 2
У меня была аналогичная проблема - вращающийся UIView
с несколькими подзонами UIImageView
. Когда я установил rasterizationScale = 2.0
, изображения стали более четкими, но это привело к появлению повторного запуска. Чтобы исправить это, я создал containerView
, в котором содержались UIView
и UIImageView
(которые ранее были рассмотрены в UIView) и применял rasterizationScale = 1.0
к UIView
и rasterizationScale = 2.0
к UIImageView
s. Теперь все выглядит неплохо.