Я пытаюсь нарисовать набор небольших кругов вокруг края изображения, чтобы отразить физические огни (пиксели). Я контролирую свое приложение. Эти круги часто меняют цвет. Поэтому я создал объект PixelSimulator для рисования каждого круга в пользовательский объект UIView.Нарисуйте UIBezierPath за пределами UIView :: drawRect()?
Вот соответствующий код
class PixelSimulator {
let size: CGSize;
let color: UIColor;
let pixelPath: UIBezierPath;
init (point: CGPoint, size: CGSize, pixel: Pixel) {
self.point = point;
self.size = size;
self.pixel = pixel;
pixelRect = CGRect(origin: point, size: size);
pixelPath = UIBezierPath(ovalInRect: pixelRect);
color = pixel.color;
}
func render() {
UIGraphicsBeginImageContext(size);
color.setFill();
pixelPath.fill();
UIGraphicsEndImageContext();
}
}
Я попробовал другой подход, используя CGContextAddEllipseInRect(context, pixelRect)
безрезультатно. Я также попытался объявить pixelPath внутри метода render()
, также безрезультатно.
Что мне нужно изменить, чтобы получить мой bezierPath, нарисованный на экране в любое время, внутри drawRect()
или из него?
Каков ваш прогноз по содержанию? Когда вы вызываете рендер? – Wain
Я вызываю 'render()', когда меняется цвет соответствующего физического света. – turibe
Откуда? В draw rect? Настройка отображения, отображаемого при их изменении? Я бы не использовал контекст изображения, я бы рисовал прямо к виду или слою. – Wain