Я работаю над проектом Swiftui, где я хочу обрезать SVG, используя пользовательский путь (например, выбор Freeform Lasso). Однако вместо того, чтобы получить только обрезанную часть, я все еще вижу весь SVG. Svg. < /Li>
< /ul> Проблема: < /strong>
SVG выглядит неизменным даже после применения палата клипа. Я ожидал, что только выбранная часть будет видна, но она, похоже, не работает. < /P>
код: < /p>
Я работаю над проектом Swiftui, где я хочу обрезать SVG, используя пользовательский путь (например, выбор Freeform Lasso). Однако вместо того, чтобы получить только обрезанную часть, я все еще вижу весь SVG. Svg. < /Li> < /ul> [b] Проблема: < /strong> SVG выглядит неизменным даже после применения палата клипа. Я ожидал, что только выбранная часть будет видна, но она, похоже, не работает. < /P> код: < /p> [code]import SwiftUI import CoreGraphics import SVGView
struct ScissorsText: View { @State private var points: [CGPoint] = [] @State private var isDrawing = false @State private var croppedImage: Image? = nil
@State private var fontSize: CGFloat = 30 @State private var showBorder: Bool = false @State private var showBorderUpper: Bool = true @State private var borderWidth: CGFloat = 1 @State private var borderColor: UIColor = .white @State private var tctNewItem: String = "Draggable" @State private var currentFontName: String = "Avenir Black"
var body: some View { ZStack { VStack { ZStack { GeometryReader { geo in ZStack { CustomTextView( fontSize: $fontSize, showBorder: $showBorder, borderWidth: $borderWidth, borderColor: $borderColor, tctNewItem: $tctNewItem, currentFontName: $currentFontName ) .frame(width: geo.size.width, height: geo.size.height) .zIndex(1.0) } .frame(height: 400) .background(.white.opacity(0.1)) .overlay(SelectionPathOverlay2(points: points, isDrawing: isDrawing)) .gesture(DragGesture() .onChanged { value in if !isDrawing { points = [value.location] isDrawing = true } else { points.append(value.location) } } .onEnded { _ in if points.count > 2 { points.append(points.first!) // Close the path } isDrawing = false } ) }
let fileManager = FileManager.default let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first! let fileURL = documentsURL.appendingPathComponent("output.svg")