iOS: Как мне поддерживать отображение Retina с помощью CGLayer?

Я рисую график на CALayer в его методе делегата drawLayer: inContext: .

Теперь я хочу поддерживать дисплей Retina, поскольку график выглядит размыто на последних устройствах.

Для частей, которые я рисую непосредственно в графическом контексте, передаваемом CALayer, я мог бы красиво рисовать с высоким разрешением, установив свойство contentScale CALayer следующим образом.

if ([myLayer respondsToSelector:@selector(setContentsScale:)]) {
    myLayer.contentsScale = [[UIScreen mainScreen] scale];
}

Но для частей, которые я использование CGLayer все еще отображается размытым.

Как мне рисовать на CGLayer в высоком разрешении для поддержки Retina Display?

Я хочу использовать CGLayer для многократного рисования одних и тех же форм графика графика, а также для обрезки линии графика, выходящие за край слоя.

Я получаю CGLayer с помощью CGLayerCreateWithContex с графическим контекстом, переданным из CALayer,и использовать его контекст, используя функции CG, такие как CGContextFillPath или CGContextAddLineToPoint .

Мне нужно поддерживать как iOS 4.x, так и iOS 3.1.3, как Retina, так и устаревший дисплей.

Спасибо,

Кура

19
задан Taka 19 July 2011 в 16:09
поделиться