From c296f3e6e5e832d8d7770b5593ddd9eb0f6ee9e5 Mon Sep 17 00:00:00 2001 From: Shibo Lyu Date: Thu, 7 Sep 2023 16:01:28 +0800 Subject: [PATCH] fix: Circular cut hole. --- Sources/CropImage/DefaultCutHoleView.swift | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Sources/CropImage/DefaultCutHoleView.swift b/Sources/CropImage/DefaultCutHoleView.swift index 4ff9807..9323e7d 100644 --- a/Sources/CropImage/DefaultCutHoleView.swift +++ b/Sources/CropImage/DefaultCutHoleView.swift @@ -33,9 +33,19 @@ public struct DefaultCutHoleView: View { .foregroundColor(maskColor) } + @ViewBuilder + var strokeShape: some View { + if isCircular { + Circle() + .strokeBorder(style: .init(lineWidth: strokeWidth)) + } else { + Rectangle() + .strokeBorder(style: .init(lineWidth: strokeWidth)) + } + } + var stroke: some View { - Rectangle() - .strokeBorder(style: .init(lineWidth: strokeWidth)) + strokeShape .frame( width: targetSize.width + strokeWidth * 2, height: targetSize.height + strokeWidth * 2 @@ -54,5 +64,8 @@ public struct DefaultCutHoleView: View { struct DefaultCutHoleView_Previews: PreviewProvider { static var previews: some View { DefaultCutHoleView(targetSize: .init(width: 100, height: 100)) + .previewDisplayName("Default") + DefaultCutHoleView(targetSize: .init(width: 100, height: 100), isCircular: true) + .previewDisplayName("Circular") } }