Я работаю над приложением для рукописного ввода и использую три разные переменные UIBezierPath:
- [paths] - массив UIBezierPath
- временный путь - чтобы помочь со сглаживанием
- realPath — путь, который в конечном итоге будет добавлен в массив «пути».
Я использую массив путей, а не один путь, потому что у меня есть инструмент панорамирования для перемещения линий по экрану, поэтому они должны быть отдельными объектами. Проблема в том, что мне приходится перерисовывать весь массив каждый раз, когда вызывается draw(:_):
override func draw(_ rect: CGRect) {
strokeColor.setStroke()
for path in paths{
path.stroke()
}
realPath?.stroke()
temporaryPath?.stroke()
}
Это создает проблемы с производительностью после рисования около 20 путей. Есть ли решение не перерисовывать весь массив каждый раз, когда вызывается draw(:_)?