![](/img/trans.png)
[英]How to send a last message and close the socket when a SwiftUI view is dismissed?
[英]Close View when .onDrag leaves view boundaries in SwiftUI
拖动项目时,我想在手指越过视图边界时立即关闭对象菜单。 护理:我不想在放下物品时关闭物品。 不幸的是,我不知道如何实现这一目标。
我只是在使用:
struct BuildingItemSlot: View {
var preview: ObjectPreview
var body: some View {
VStack() {
Image(uiImage: UIImage(contentsOfFile: preview.dataPath + "/Raw/Thumbnails/" + preview.id + ".png") ?? UIImage())
.resizable()
//.scaledToFit()
.frame(width: 64, height: 64)
.padding(4)
//.border(Color.black, width: 1)
}
.onDrag({ NSItemProvider() })
}
}
嵌入到构成清单的视图中...
VStack() {
ForEach(networkManager.objectPreviewList.objects ?? []){ preview in
BuildingItemSlot(preview: preview)
}
}
.padding(40)
我只需通过以下方式打开和关闭侧面菜单:
.offset(x: stateHandler.openBuildingsMenu ? 0 : 480)
非常感谢,雅各布
onDrop(of:delegate)
是要在可以接受放置的视图上使用的视图修饰符。dropEntered
,dropExited
,dropUpdated
,validateDrop
- 您可以动态验证 drop 是否有效performDrop
validateDrop
应该让您控制何时接受/拒绝动态放置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.