Как использовать перевод для табличных рядов в SwiftuiIOS

Программируем под IOS
Ответить
Anonymous
 Как использовать перевод для табличных рядов в Swiftui

Сообщение Anonymous »

С WWDC 2022 Apple представила протокол переносимого для поддержки перетаскивания и выбросов простым способом. Как я могу использовать эту новую технику (в сочетании с новыми модификаторами Draggable и DropDestination) для таблиц Swiftui (не списков)? Кроме того, при применении модификаторов непосредственно к представлениям в TableColumn < / code> операция перетаскивания / выпада будет работать только для этой конкретной ячейки, а не для всей строки. При добавлении модификаторов ко всем ячейкам он все еще не работает при перетаскивании, например, в пустом месте внутри ряда. < /p>

Код: Выделить всё

struct Item: Identifiable, Codable, Transferable {
let id = UUID()
let text: String

static var transferRepresentation: some TransferRepresentation {
CodableRepresentation(contentType: .text)
}
}

struct Test: View {
var body: some View {
Table {
TableColumn("Column 1") { item in
Text(item.text)
.draggable(item) // This does only work when dragging not in the space between two columns
}
TableColumn("Column 2") { item in
Text(item.text)
.draggable(item) // This does only work when dragging not in the space between two columns
}
} rows: {
ForEach([Item(text: "Hello"), Item(text: "World")]) { item in
TableRow(item)
.draggable(item) // This causes a compile-time error
.itemProvider { ... } // This does not work with Transferable and thus support my use case
}
}
}
}
Я хочу аналогичное поведение в качестве модификатора Itemprovider и недавно добавленный модификатор контекста в TableRowContent , который позволяет соответствующую операцию на всей строке таблицы. Я не могу использовать itemprovider , поскольку необходимо возвращать nsitemprovider, который не поддерживает мой случай использования перетаскивания файла с сетевого диска на жесткий диск Mac.

Подробнее здесь: https://stackoverflow.com/questions/744 ... in-swiftui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»