gpt4 book ai didi

ios - SwiftUI | onDrag - 自定义 (dragItem) 预览图像外观

转载 作者:行者123 更新时间:2023-12-04 11:03:38 30 4
gpt4 key购买 nike

我一直想知道是否有任何方法可以自定义 preview imageview使用 onDrag 时被拖动?

如您所见,preview image默认情况下, View 的不透明度图像稍大。
根据我的发现,一个 preview image在拖动过程开始时生成。但我找不到改变它的方法。
我所说的定制是有一些定制imagepreview image自定义view . (两者都没有默认不透明度)
有人有想法吗?
我尝试使用 previewImageHandler总的来说,阅读很多关于 NSItemProvider 的内容.但对我来说,这似乎是 SwiftUI 不可能的事情?
UIKit可以定制UIDragItem - 类似使用 previewProvider : Here
这是我的演示代码:

struct ContentView: View {

var body: some View {
DraggedView()
.onDrag({ NSItemProvider() })
}


private struct DraggedView: View {

var body: some View {
RoundedRectangle(cornerRadius: 20)
.frame(width: 120, height: 160)
.foregroundColor(.green)
}
}
}
我将使用它在 LazyVGrid 中进行拖放。 ,所以定制 gestures不幸的是没有选择。
我的第二个想法是同时做一个手势,首先改变 item被拖到别的地方然后 onDrag启动并返回 NSItemProviderpreview image那将是我想要的那个。但是我不能让这两个手势同时进行,你必须先关闭一个才能开始第二个。
谢谢!

最佳答案

iOS 15 添加了一个 API 来执行此操作 - 您可以指定 View用于 preview . onDrag(_:preview:)

RoundedRectangle(cornerRadius: 20)
.frame(width: 120, height: 160)
.foregroundColor(.green)
.onDrag {
NSItemProvider()
} preview: {
RoundedRectangle(cornerRadius: 18)
.frame(width: 100, height: 140)
.foregroundColor(.green)
}

关于ios - SwiftUI | onDrag - 自定义 (dragItem) 预览图像外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64316054/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com