-
Notifications
You must be signed in to change notification settings - Fork 95
Open
Description
XCode: 14.3.1
SwiftSignatureView: 3.2.0
Hello,
I am saving the signatureView.signature into a variable and outputting it directly as an image.
// ... code ...
@State private var signatureImage: UIImage?
@Binding var signature: String
// ... code ... /
SignatureCaptureView(signatureImage: $signatureImage)
.frame(height: 200)
.border(Color.gray, width: 1)
// ... code ...
if let img = signatureImage {
Image(uiImage: img)
.resizable()
.scaledToFit()
.frame(width: 300, height: 200)
.background(Color.gray.opacity(0.2))
.id(UUID())
} else {
Text("No signature yet")
.background(Color.gray.opacity(0.2))
.frame(width: 300, height: 200)
}
But it does not show the Last Drawing. So if I draw 2 strokes, it only shows the first one. If I draw 3 lines, it only shows the first two. So it always does NOT show the last one.
SignatureCaptureView.swift:
import SwiftUI
import SwiftSignatureView
struct SignatureCaptureView: UIViewRepresentable {
@Binding var signatureImage: UIImage?
private var signatureView: SwiftSignatureView // Diese Eigenschaft hinzufügen
var coordinator: Coordinator? // Füge ein Coordinator-Objekt hinzu
func getCroppedSignature(from view: SwiftSignatureView) -> UIImage? {
return view.getCroppedSignature()
}
init(signatureImage: Binding<UIImage?>) {
self._signatureImage = signatureImage
self.signatureView = SwiftSignatureView()
}
func makeUIView(context: Context) -> SwiftSignatureView {
let signatureView = SwiftSignatureView()
signatureView.delegate = context.coordinator
return signatureView
}
func updateUIView(_ uiView: SwiftSignatureView, context: Context) {
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, SwiftSignatureViewDelegate {
var parent: SignatureCaptureView
var signatureView: PencilKitSignatureView? // Speichere die SignatureView
init(_ parent: SignatureCaptureView) {
self.parent = parent
}
func updateUIView(_ view: ISignatureView) {
if let signatureView = view as? PencilKitSignatureView {
parent.signatureImage = signatureView.signature
view.signature = signatureView.signature
}
}
func swiftSignatureViewDidDrawGesture(_ view: ISignatureView, _ tap: UIGestureRecognizer) {
//print("triggered: DrawGesture")
if let signatureView = view as? PencilKitSignatureView {
//parent.signatureImage = signatureView.signature
}
}
func swiftSignatureViewDidDraw(_ view: ISignatureView) {
print("triggered: DidDraw")
if let signatureView = view as? PencilKitSignatureView {
print("saving...")
parent.signatureImage = signatureView.signature
} else {
print("View konnte nicht zu PencilKitSignatureView gecastet werden")
}
}
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels