ContextMenuConfigurationForRowAt в iOS13 - PullRequest
       28

ContextMenuConfigurationForRowAt в iOS13

1 голос
/ 20 сентября 2019

в этом видео в сезоны WWDC19, Модернизация вашего пользовательского интерфейса для iOS 13

Этот метод используется для создания contextMenu, но при его использовании появляется ошибка

@available(iOS 13.0, *)
func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
    let actionProvider = (suggestedActions: [UIMenuElement])-> UIMenu? // in this line i got an error {
        let editMenu = UIMenu(title: "Edit...", children: [
        UIAction(title: "Copy") {},
        UIAction(title: "Duplicate") {}
        ])
        return UIMenu(children: [
        UIAction(title: "Share") {},
        editMenu,
        UIAction(title: "Delete", style: .destructive) {}
        ])
    }

    return UIContextMenuConfiguration(identifier: "unique-ID" as NSCopying,
                                      previewProvider: nil,
                                      actionProvider: actionProvider)
}

Ошибка появляется в строке -> UIMenu? и говорит Expected type after '->'.Может ли кто-нибудь помочь мне, как решить это?

1 Ответ

1 голос
/ 20 сентября 2019

У вас так много синтаксических ошибок:

func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {

        let actionProvider: UIContextMenuActionProvider = { _ in
        let editMenu = UIMenu(title: "Edit...", children: [
            UIAction(title: "Copy") { _ in },
            UIAction(title: "Duplicate") { _ in }
        ])
        return UIMenu(title: "Title", children: [
            UIAction(title: "Share") { _ in },
            editMenu
        ])
    }

    return UIContextMenuConfiguration(identifier: "unique-ID" as NSCopying,
                                       previewProvider: nil,
                                       actionProvider: actionProvider)
}

Обратите внимание, что некоторые API-интерфейсы изменились после WWDC, и вам следует рассмотреть возможность их обновления аналогично приведенному выше коду.

...