onDrag 预览不仅是拖动的视图,还显示视图所在的背景

Bre*_*mbs 1 drag-and-drop drag ios swift swiftui

I\xe2\x80\x99m 在具有圆角的视图上使用 .onDrag 修改器:

\n
struct RootView: View {\n    \n    @State var dragging: Bool = false\n    \n    var body: some View {\n        VStack {\n            Color.red.cornerRadius(32)\n                .frame(width: 300, height: 300)\n                .onDrag {\n                    dragging = true\n                    return NSItemProvider(object: NSString())\n                }\n        }.frame(maxWidth: .infinity, maxHeight: .infinity)\n        .background(.green)\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

问题是,当我调用拖动时 - 由于系统应用了自动阴影效果 - 它并不感觉像我自己拖动卡一样。见下文。

\n

在此输入图像描述

\n

有没有什么方法可以让卡片看起来是用透明背景拖动的,而不是在它上面放置的任何背景颜色之上?

\n

Asp*_*eri 5

有一个内容形状类型,

Color.red.cornerRadius(32)
    .frame(width: 300, height: 300)
    .contentShape(.dragPreview, RoundedRectangle(cornerRadius: 32))  // << here !!
    .onDrag {
Run Code Online (Sandbox Code Playgroud)