Как нарисовать линию / штрих с пользовательским рисунком / изображением, используя базовую графику?

Я работаю над приложением для аннотаций в формате PDF, и теперь я могу нарисовать линию, используя изображение в «PDFAnnotationSubtype.stamp».

Изображение:

используя приведенный ниже код:

      public class ImageAnnotation: PDFAnnotation{ 

 init(with image: UIImage!, forBounds bounds: CGRect, withProperties properties: [AnyHashable : Any]?) {
    super.init(bounds: bounds, forType: PDFAnnotationSubtype.stamp, withProperties: properties)

    self._image = image
}

override public func draw(with box: PDFDisplayBox, in context: CGContext) {
    guard let cgImage = self._image?.cgImage else { return }
    context.draw(cgImage, in: self.bounds)
}
}

Результаты:

Используя этот метод, я добавляю изображение в каждую точку CGpoint (другими словами, каждая точка cgpoint представляет собой отдельный PDFAnnotation). Как сделать весь путь одним штрихом / одиночной аннотацией, чтобы при попытке стирания очищался весь путь, а не только несколько точек / пикселей.

1 ответ

Решение

После поиска нескольких найденных ресурсов мы можем использовать «CGPattern» для текстурирования линии.

Ссылка:https://developer.apple.com/documentation/coregraphics/cgpattern

Для всех, кто пытается это сделать, обязательно поиграйте с «DrawingPath» с режимами «заливки» и «обводки».

Другие вопросы по тегам