![](/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.