onDrag 预览不仅是拖动的视图,还显示视图位于其上的背景
onDrag preview isn’t just of the dragged view but also displays the background the view is laid on top of
我在具有圆角的视图上使用 .onDrag 修饰符:
struct RootView: View {
@State var dragging: Bool = false
var body: some View {
VStack {
Color.red.cornerRadius(32)
.frame(width: 300, height: 300)
.onDrag {
dragging = true
return NSItemProvider(object: NSString())
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(.green)
}
}
问题是当我调用拖动时——由于系统应用的自动投影效果——我感觉不像是在自己拖动卡片。见下文。
有什么方法可以让卡片看起来像是拖拽着透明背景,而不是在它上面放置的任何背景颜色上方?
这个有内容形状类型,
Color.red.cornerRadius(32)
.frame(width: 300, height: 300)
.contentShape(.dragPreview, RoundedRectangle(cornerRadius: 32)) // << here !!
.onDrag {
我在具有圆角的视图上使用 .onDrag 修饰符:
struct RootView: View {
@State var dragging: Bool = false
var body: some View {
VStack {
Color.red.cornerRadius(32)
.frame(width: 300, height: 300)
.onDrag {
dragging = true
return NSItemProvider(object: NSString())
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(.green)
}
}
问题是当我调用拖动时——由于系统应用的自动投影效果——我感觉不像是在自己拖动卡片。见下文。
有什么方法可以让卡片看起来像是拖拽着透明背景,而不是在它上面放置的任何背景颜色上方?
这个有内容形状类型,
Color.red.cornerRadius(32)
.frame(width: 300, height: 300)
.contentShape(.dragPreview, RoundedRectangle(cornerRadius: 32)) // << here !!
.onDrag {