У меня есть CALayer, который реализует drawInContext: и рисует простой круг, например:
- (void)drawInContext:(CGContextRef)ctx
{
CGContextScaleCTM(ctx, DrawingScale, DrawingScale);
CGContextSetRGBFillColor (ctx, 1, 0, 0, 1);
CGContextFillEllipseInRect (ctx, LocationRectangle);
}
Я экспериментировал с различными способами увеличения размера моего круга на основе события касания. Я пытался использовать систему UIView beginAnimation и CABasicAnimation's, но все они размывают изображение. В моем чтении я обнаружил, что это потому, что CALayer, похоже, обрабатывается как растровые изображения для этих опций.
Достаточно справедливо ... но я хочу масштабировать графику без размытия, например, использовать векторное масштабирование.
Таким образом, в моем коде у меня есть свойство DrawingScale.
Есть ли удобный способ масштабирования этого свойства с помощью анимации слоев? Или это то, что люди делают с NSTimers (юк)?
Может ли это быть одной из ситуаций, когда я могу использовать способность Core Animation для анимации пользовательских свойств?
Если это так, я хотел бы знать, какой пример люди считают лучшим, или какой раздел документации Apple может быть хорошим местом для начала этой темы.
Похоже, когда речь заходит о графике на Mac / iOS, есть много способов сделать из кожи / нарисовать кота ...?