0

我正在尝试在与UiImageView 大小相同的PkCanvasView图形上叠加一个图形。UiImageViewPkCanvasView

我的问题是我无法将 PkCanvasView 设置为与波纹管​​视图相同的大小。实际上(查看下面的屏幕截图)似乎PkCanvasView比图像视图大

我尝试将frame和 的contentSize值设置PkCanvasView为相同的值, UiImageView但我无法达到预期的结果。

这是我的代码:

class ImageEditor: NSObject, FlutterPlatformView {
    private var _view: UIImageView!
    private var _image: UIImage!
    var _canvas: PKCanvasView!
    private var _toolPicker: PKToolPicker

    
    init(
        arguments args: Any?,
    ) {
        _image = UIImage.init(contentsOfFile: args as! String)
        _view = UIImageView.init(image: _image)
        _canvas = PKCanvasView.init(frame: _view.frame)
        _toolPicker = PKToolPicker.init()
        super.init()
        createNativeView(view: _view, canvas: _canvas, toolPicker: _toolPicker)
        
    }
    
    
    func view() -> UIView {
        return _canvas
    }
    
    func createNativeView(view _view: UIImageView,canvas _canvas: PKCanvasView,toolPicker _toolPicker: PKToolPicker){
        print(_view.frame)
        print(_view.frame.size)
        _canvas.addSubview(_view)
        _view.layer.zPosition = -1
        _canvas.isUserInteractionEnabled = false
        _canvas.isOpaque = false
        _view.contentMode = UIView.ContentMode.scaleAspectFill
        _canvas.clipsToBounds = true
        _canvas.frame = _view.frame
        _canvas.contentSize = _view.frame.size
    
        _canvas.drawingPolicy = PKCanvasViewDrawingPolicy.anyInput
        _toolPicker.addObserver(_canvas)
        _toolPicker.setVisible(true, forFirstResponder: _canvas)
        
        
    }
    
    

}


在这里,您可以在更大的 PkCanvasView 中看到 UiImage 视图:

视图的屏幕截图

谢谢

4

0 回答 0