「Swift 今更!?PencilKit」のSwiftUI・iPadOS14.5版

Swift 今更!?PencilKit

以前の記事「Swift 今更!?PencilKit」

SwiftUI・iPadOS14.5版

リフィル画像を背景に設定版

  • リフィル画像はAssetに設定。
  • Device OrientationをiPad・Landscapeのみ設定。

import SwiftUI
import PencilKit

struct ContentView: View {
    @State var pkcanvasview: PKCanvasView = PKCanvasView()

    let screenSize: CGSize = UIScreen.main.bounds.size

    var body: some View {
        ZStack {
            Image("template")
                .resizable()
                .scaledToFit()
                .frame(width: screenSize.width, height: screenSize.height, alignment: .center)
            PencilKitCanvasView(pkcanvasview: self.$pkcanvasview)
        }
    }
}

struct PencilKitCanvasView: UIViewRepresentable {
    @Binding var pkcanvasview: PKCanvasView
    let pktoolpicker = PKToolPicker()

    func makeUIView(context: Context) -> PKCanvasView {
        self.pkcanvasview.isOpaque = false
        self.pkcanvasview.backgroundColor = .clear
        self.pkcanvasview.overrideUserInterfaceStyle = .light
        self.pktoolpicker.addObserver(pkcanvasview)
        self.pktoolpicker.setVisible(true, forFirstResponder: pkcanvasview)
        self.pkcanvasview.becomeFirstResponder()
        return pkcanvasview
    }
    
    func updateUIView(_ uiView: PKCanvasView, context: Context) {
    }
}