代码示例
下面是一个简单的示例代码,演示如何使用 onDrag(_:)
方法在 SwiftUI 中实现拖动操作:
import SwiftUI
struct DragExampleView: View {
var body: some View {
VStack {
Text("拖动这段文本")
.padding()
.background(Color.yellow)
.cornerRadius(10)
// 使用 onDrag 来指定拖动时提供的数据
.onDrag {
// 创建 NSItemProvider,提供拖动时的数据
return NSItemProvider(object: NSString(string: "这是拖动的文本"))
}
Image(systemName: "star.fill")
.resizable()
.frame(width: 100, height: 100)
.foregroundColor(.blue)
.onDrag {
// 使用 NSItemProvider 提供图片的拖动数据
return NSItemProvider(object: UIImage(systemName: "star.fill")!)
}
}
.padding()
}
}
struct DragExampleView_Previews: PreviewProvider {
static var previews: some View {
DragExampleView()
}
}
代码说明:
Text("拖动这段文本")
:我们使用了onDrag
修饰符,指定在拖动文本时提供NSString
类型的文本数据,用户可以拖动这段文本到其他支持文本输入的地方。Image(systemName: "star.fill")
:这是一个系统图标星形图像,使用onDrag
来提供图像数据,用户可以拖动该图像。
运行效果:
用户可以从应用中拖动文本 "拖动这段文本" 到支持文本输入的地方。
用户可以从应用中拖动星形图标到支持图片接收的地方。
Last updated