Можно ли анимировать содержимое CoreGraphics UIView
?
Допустим, у меня есть подкласс UIView
с именем MyView
, который реализует метод drawRect:
следующим образом:
- (void) drawRect: (CGRect) rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(c, someColor);
CGContextSetLineWidth(c, someWidth);
CGContextMoveToPoint(c, leftOfMyUIView, topOfMyUIView);
CGContextAddLineToPoint(c, leftOfMyUIView, bottomOfMyUIView);
CGContextStrokePath(c);
}
Другими словами - он рисует вертикальную линию в левой части моего подкласса UIView. Есть ли простой способ анимировать этот UIView, чтобы линия перемещалась с левой стороны на правую сторону вида? Я бы хотел, чтобы он «дрейфовал» слева направо.
Для ясности - по причинам, в которые я не буду вдаваться, я не могу переместить / оживить экземпляр MyView
. Лучшее решение, которое я могу использовать, это добавить новый подкласс UIView
. Что-то вроде LineView extends UIView
, а затем сделайте LineView точными размерами линии, которую я хочу нарисовать, заполните ее, используя собственный метод drawRect
, а затем добавьте экземпляр LineView
в MyView
в качестве подпредставления. Это позволило бы мне анимировать положение объекта LineView
, используя блок анимации, но кажется слишком сложным для достижения чего-то настолько простого.