<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>4 拖放 on 编程那些事儿</title><link>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/</link><description>Recent content in 4 拖放 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 13 Sep 2026 18:20:56 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/index.xml" rel="self" type="application/rss+xml"/><item><title>4.1 在 SwiftUI 中采用拖放</title><link>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.1-AdoptingDragAndDropUsingSwiftui/</link><pubDate>Sat, 12 Sep 2026 12:47:47 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.1-AdoptingDragAndDropUsingSwiftui/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://developer.apple.com/documentation/swiftui/adopting-drag-and-drop-using-swiftui"&gt;https://developer.apple.com/documentation/swiftui/adopting-drag-and-drop-using-swiftui&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="41-在-swiftui-中采用拖放"&gt;4.1 在 SwiftUI 中采用拖放&lt;/h1&gt;
&lt;p&gt;在列表、表格和自定义视图里启用拖放交互。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;这个示例代码项目演示了 SwiftUI 视图如何充当拖拽源或放置目标。&lt;/p&gt;
&lt;p&gt;要启用拖拽交互，请为一个视图添加 &lt;a href="https://developer.apple.com/documentation/swiftui/view/draggable(_:)"&gt;draggable(_:)&lt;/a&gt; 修饰符，从而在应用内、你自己的多个应用之间，或者在你的应用与支持导入或导出某种数据格式的其他应用之间发送或接收 &lt;a href="https://developer.apple.com/documentation/coretransferable/transferable"&gt;Transferable&lt;/a&gt; 项目。要处理被放置的内容，请使用 &lt;a href="https://developer.apple.com/documentation/swiftui/view/dropdestination(for:action:istargeted:)"&gt;dropDestination(for:action:isTargeted:)&lt;/a&gt; 修饰符来接收预期的被放置项目。&lt;/p&gt;</description></item><item><title>4.2 把视图变成拖拽源</title><link>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.2-MakingAViewIntoADragSource/</link><pubDate>Sat, 12 Sep 2026 12:47:47 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.2-MakingAViewIntoADragSource/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://developer.apple.com/documentation/swiftui/making-a-view-into-a-drag-source"&gt;https://developer.apple.com/documentation/swiftui/making-a-view-into-a-drag-source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="42-把视图变成拖拽源"&gt;4.2 把视图变成拖拽源&lt;/h1&gt;
&lt;p&gt;采用 draggable API 为拖放操作提供项目。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;当有人拖拽你应用中某个项目在屏幕上的视觉表示（例如一张照片、一个地图位置、一个日历事件或一段选中的文本）时，这次拖拽操作会关联一些数据，以及系统显示的该数据的预览。添加 &lt;a href="https://developer.apple.com/documentation/swiftui/view/draggable(_:)"&gt;draggable(_:)&lt;/a&gt; 修饰符即可让该视图充当拖拽源，并提供一个遵循 &lt;a href="https://developer.apple.com/documentation/coretransferable/transferable"&gt;Transferable&lt;/a&gt; 协议的值。&lt;/p&gt;</description></item><item><title>4.3 在列表、栈、网格和自定义布局中重新排序项目</title><link>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.3-ReorderingItemsInListsStacksGridsAndCustomLayouts/</link><pubDate>Sat, 12 Sep 2026 12:47:47 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.3-ReorderingItemsInListsStacksGridsAndCustomLayouts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://developer.apple.com/documentation/swiftui/reordering-items-in-lists-stacks-grids-and-custom-layouts"&gt;https://developer.apple.com/documentation/swiftui/reordering-items-in-lists-stacks-grids-and-custom-layouts&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="43-在列表栈网格和自定义布局中重新排序项目"&gt;4.3 在列表、栈、网格和自定义布局中重新排序项目&lt;/h1&gt;
&lt;p&gt;使用重新排序修饰符为 SwiftUI 布局添加拖拽重新排序的交互。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;当你有一组或多组有序数据项目，且每个项目都在&lt;em&gt;容器&lt;/em&gt;（例如列表、栈、网格或自定义布局）中显示为一个视图时，SwiftUI 会提供重新排序功能。系统允许用户选中某个表示数据项目的视图，并在容器中拖动它。当他们拖动该视图时，其他视图会移动，以显示一个可以放置该视图的占位空间。&lt;/p&gt;</description></item><item><title>4.4 用 SwiftUI 制作带拖放与重排的纸牌游戏</title><link>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.4-MakingACardGameWithDragDropAndReorderingInSwiftui/</link><pubDate>Sat, 12 Sep 2026 12:47:47 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftUI/eventhandling/4-DragAndDrop/4.4-MakingACardGameWithDragDropAndReorderingInSwiftui/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://developer.apple.com/documentation/swiftui/making-a-card-game-with-drag-drop-and-reordering-in-swiftui"&gt;https://developer.apple.com/documentation/swiftui/making-a-card-game-with-drag-drop-and-reordering-in-swiftui&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="44-用-swiftui-制作带拖放与重排的纸牌游戏"&gt;4.4 用 SwiftUI 制作带拖放与重排的纸牌游戏&lt;/h1&gt;
&lt;p&gt;使用拖放与重排修饰符在纸牌游戏中的不同位置之间移动纸牌。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：这个示例代码项目与 WWDC26 的讲座 271 相关：&lt;a href="http://developer.apple.com/videos/play/wwdc2026/271/"&gt;代码实战：在 SwiftUI 中构建强大的拖放功能&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>