【发布时间】:2021-01-24 08:05:51
【问题描述】:
我正在尝试创建可以拖放的圆圈。
我可以让它只使用第一个圆圈,但是,第一个圆圈之后的任何东西都不起作用。
预期行为:圆圈在拖动时跟随我的光标并在拖动结束时落在最终位置
实际行为:圆圈跟随我光标的水平位置,但不是垂直位置(垂直位置总是显着低于我的光标)
ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
VStack(alignment: .center) {
ForEach(0..<5) { _ in
DraggableCircles()
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct DraggableCircles: View {
@State var dragAmount: CGPoint = CGPoint.zero
var body: some View {
Circle().fill(Color.red)
.frame(width: 50, height: 50)
.gesture(
DragGesture(coordinateSpace: .global).onChanged {action in
let location = action.location
let newWidth = location.x
let newHeight = location.y
let size = CGPoint(x: newWidth, y: newHeight)
self.dragAmount = size
}.onEnded{action in
let location = action.location
let newWidth = location.x
let newHeight = location.y
let size = CGPoint(x: newWidth, y: newHeight)
self.dragAmount = size
}
)
.position(x: dragAmount.x, y: dragAmount.y)
}
}
【问题讨论】:
标签: ios swift user-interface swiftui drag-and-drop