首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PencilKit画布中的粘贴图像

PencilKit画布中的粘贴图像
EN

Stack Overflow用户
提问于 2021-12-15 13:21:04
回答 1查看 364关注 0票数 0

由于我对SwiftUI编程非常陌生,所以我想问一下,最好的方法是将图像粘贴到PKCanvasView中。

我不期望得到任何代码,但可能有一些方向,什么是可能的方式,以实现我的目标。不幸的是,我发现的唯一的教程是将图像设置为一个背景图像来绘制它。然而,我不希望有一个全屏图像,而是一个图像,可以放置和调整大小取决于用户的需要。

我在Swift UI中使用PencilKit和一个DrawingWrapper:

代码语言:javascript
复制
    struct DrawingWrapper: UIViewControllerRepresentable {
  typealias UIViewControllerType = DrawingViewController
  
  var manager: API
  
  func makeUIViewController(context: Context) -> DrawingViewController {
    let viewController = DrawingViewController()
    viewController.drawingData = manager.getData()
    
    
    viewController.drawingChanged = { data in
      manager.updateDrawingData(data: data)
      let canvas = viewController.canvas
      manager.updateImage(image: canvas.drawing.image(from: canvas.bounds, scale: 1.0))
    }
    
    
    return viewController
  }
  
  func updateUIViewController(_ uiViewController: DrawingViewController, context: Context) {
    uiViewController.drawingData = manager.getData()
  }
  
}

我的DrawingViewController看起来是这样的:

代码语言:javascript
复制
class DrawingViewController: UIViewController {

  
  lazy var canvas: PKCanvasView = {
    let v = PKCanvasView()
    v.drawingPolicy = .pencilOnly
    v.minimumZoomScale = 1
    v.maximumZoomScale = 2
    v.translatesAutoresizingMaskIntoConstraints = false
    return v
  }()
  
  lazy var toolPicker: PKToolPicker = {
    let toolPicker = PKToolPicker()
    toolPicker.addObserver(self)
    return toolPicker
  }()
  
  var drawingData = Data()
  
  var drawingChanged: (Data) -> Void = { _ in }
EN

回答 1

Stack Overflow用户

发布于 2022-03-23 14:06:13

如果要存档的是,请将背景图像粘贴到画布上,以便能够在其上进行绘图:

您可以将图像放在背景中,并通过将UIImageView作为PKCanvasView的子视图进行绘图。

代码语言:javascript
复制
let canvasView = PKCanvasView()
canvasView.isOpaque = true
let imageView = UIImageView(image: UIImage(systemName: "pencil"))
canvasView.insertSubview(imageView, at: 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70364438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档