#swift #uitableview #tableview
#быстрый #uitableview uitableview #просмотр таблицы #swift #uitableview
Вопрос:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIContextMenuInteractionDelegate {
@IBOutlet weak var plannerTableView: UITableView!
...
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myPreparedTasks.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let task = self.myPreparedTasks[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "taskCell", for: indexPath) as! TaskTableViewCell
cell.taskId?.text = task.id
let interaction = UIContextMenuInteraction(delegate: self)
cell.addInteraction(interaction)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 50
}
func contextMenuInteraction(_ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {
return UIContextMenuConfiguration(identifier: nil, previewProvider: nil, actionProvider: { suggestedActions in
return self.makeContextMenu()
})
}
func makeContextMenu() -> UIMenu {
let add = UIAction(title: "Neuer Task", image: UIImage(systemName: "plus.square")) { action in
// Show the Task ID
}
return UIMenu(title: "Task", children: [add])
}
}
iOS 13, Swift 5
Привет. Это первый раз, когда я реализую контекстное меню в tableViewCell. Я делаю то, что описано выше. И это выглядит великолепно. Но я не могу получить идентификатор массива myPreparedTasks из содержимого tableview. Как я могу получить это удостоверение личности? Пожалуйста, дайте мне ответ для этой конструкции. Я вижу много других конструкций в сети, но пока не понимаю этого.
Большое спасибо , Йенс
Ответ №1:
Для контекстного меню в табличном представлении необходимо реализовать метод делегирования
optional func tableView(_ tableView: UITableView,
contextMenuConfigurationForRowAt indexPath: IndexPath,
point: CGPoint) -> UIContextMenuConfiguration?
вместо добавления UIContextMenuInteraction
в каждую ячейку.