首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复pencilKit工具栏?

如何修复pencilKit工具栏?
EN

Stack Overflow用户
提问于 2022-10-13 16:39:25
回答 1查看 33关注 0票数 0

我正试图用pencilKit为IOS 15.5制作一个绘图应用程序。我可以在屏幕上绘图,但是当我想用toolPicker改变工具时,它实际上并没有改变(它一直在用默认的工具绘制),这是我的代码

代码语言:javascript
复制
import UIKit
import PencilKit
class ViewController: UIViewController, PKCanvasViewDelegate, PKToolPickerObserver{
    @IBOutlet weak var canvasView: PKCanvasView!
    override func viewDidLoad() {
        super.viewDidLoad()
        canvasView.delegate = self
        canvasView.becomeFirstResponder()
    }
    override func viewDidAppear(_ animated:  Bool) {
        super.viewDidAppear(true)
        canvasView.drawingPolicy = .anyInput
        setUpCanvasView()
    }
    func setUpCanvasView(){
        let toolPicker = PKToolPicker.init()
        toolPicker.addObserver(canvasView)
        toolPicker.setVisible(true, forFirstResponder: canvasView)
        canvasView.becomeFirstResponder()
    }
        func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) {
            print("drawing")
        }
        
        func canvasViewDidEndUsingTool(_ canvasView: PKCanvasView) {
            print("End using the PK tools")
        }
        
        func canvasViewDidFinishRendering(_ canvasView: PKCanvasView) {
            print("Completed the UI Event")
        }
        
    }
EN

回答 1

Stack Overflow用户

发布于 2022-11-08 19:59:00

这里的问题是,您要在函数中创建一个PKToolPicker实例,在函数结束后,实例将从内存中释放。喜欢这样做,它就会起作用。

代码语言:javascript
复制
import UIKit
import PencilKit

class ViewController: UIViewController, PKCanvasViewDelegate, PKToolPickerObserver {

@IBOutlet weak var canvasView: PKCanvasView!
let toolPicker = PKToolPicker()

   override func viewDidLoad() {
     super.viewDidLoad()
     canvasView.delegate = self
     canvasView.becomeFirstResponder()
    }

    override func viewDidAppear(_ animated:  Bool) {
      super.viewDidAppear(true)
      canvasView.drawingPolicy = .anyInput
      setUpCanvasView()
    }

    func setUpCanvasView(){
       toolPicker.addObserver(canvasView)
       toolPicker.setVisible(true, forFirstResponder: canvasView)
       canvasView.becomeFirstResponder()
    }

    func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) {
        print("drawing")
    }
    
    func canvasViewDidEndUsingTool(_ canvasView: PKCanvasView) {
        print("End using the PK tools")
    }
    
    func canvasViewDidFinishRendering(_ canvasView: PKCanvasView) {
        print("Completed the UI Event")
    }
    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74059164

复制
相关文章

相似问题

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