// https://www.codecademy.com/resources/docs/swiftui/drag-and-drop // https://hyeondxx.medium.com/swiftui-customlist-순서-바꾸기-58ff224b1ad8 /// 드래그 앤 드랍 (순서 변경) struct DropViewDelegate: DropDelegate { let item: String @Binding var items: [String] @Binding var draggedItem: String? // 드래그 할 때 아이템 우측 상단에 표시되는 이미지 설정 (이 매서드 아예 안쓰면 기본 값 copy : + 플러스 이미지) func dropUpdated(info: DropInfo) -> DropProposal?..
import SwiftUI /// 컨텐츠 크기 만큼 아래로 배치 되는 레이아웃 iOS 16+ struct FlowLayout: Layout { var spacing: CGFloat? = nil struct Cache { var sizes: [CGSize] = [] var spacing: [CGFloat] = [] } func makeCache(subviews: Subviews) -> Cache { let sizes = subviews.map { $0.sizeThatFits(.unspecified) } let spacing: [CGFloat] = subviews.indices.map { index in guard index != subviews.count - 1 else { return 0 } return..