希望你们中的任何人都可以帮助我并给我建议。
我的任务是使用 SwiftUI 制作照片编辑应用程序。在应用程序中,有一个功能可以从一个人的照片中删除背景(所以只有这个人的对象),然后我创建了一个新的 UIImage 作为图层,用可以移动的图像替换背景(在照片后面背景已被删除),因此它被定位当我试图拖动新背景但我不能,因为从背景中删除的相框挡住了新的 UIImage 背景。
这是我制作的代码。
struct MaskImage: View {
@State var currentPositions = CGPoint.init(x: UIScreen.main.bounds.width/2, y: UIScreen.main.bounds.height/4)
@State var currentPosition = CGPoint.init(x: UIScreen.main.bounds.width/2, y: UIScreen.main.bounds.height/4)
@GestureState private var isDragging = false
var body: some View {
GeometryReader { geo in
HStack {
VStack {
Spacer()
ZStack {
Image("EFFECT-1") // DRAGGABLE PHOTO BACKGROUND
.resizable()
.frame(width: abs(geo.size.width-32), height: 375, alignment: .center)
.position(currentPosition)
.gesture(
DragGesture()
.onChanged { value in
self.currentPosition = value.location
}
.updating($isDragging) { (value, state, transaction) in // 1, 2
state = true
self.currentPosition = value.location
}
)
Image("SEGMENTED_IMAGE_REMOVE_BACKGROUND") // The image that will be the front
.resizable()
.frame(width: abs(geo.size.width - 32), height: abs(round((geo.size.width / 2) * 2.438)), alignment: .center)
}
Spacer()
}
}
.background(Color.red)
}
}
}