Я действительно не знаю, как назвать эту функцию, музыкальное приложение имело ее до 8,4, это похоже на скриншот. Я хочу реализовать его в своем приложении, поэтому, когда пользователь нажимает на ячейку, появляется «пузырь» с 2 кнопками выбора. Мне интересно, как это произошло в Obj-C, но я уверен, что люди оценят ответ, написанный в Swift. Благодаря ScreenshotiOS - Как добавить пузырь с текстом/кнопками по ячейке в UITableView?
ответ
Я делаю точно то же самое, что вы хотите. Для этого вам необходимо создать свой собственный контроллер просмотра, а не UIMenuItem. Захват экрана выглядит следующим образом.
Что я делаю, чтобы создать ViewController как всплывающие окна (PopoverMenuController), и добавление Tableview как подвид в меню. Таким же образом вы можете добавить любые элементы управления пользовательского интерфейса, которые вы хотите вместо tableView.
Вот как вы используете мой PopoverMenuController.
var myPopupMenu: PopoverMenuController!
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// make cell fully visible
let tableCell = tableView.cellForRow(at: indexPath)!
tableView.scrollRectToVisible(tableView.rectForRow(at: indexPath), animated: false)
// pop up menu
myPopupMenu = PopoverMenuController()
myPopupMenu.sourceView = tableCell
var rect = tableCell.bounds
// I'm adjusting popup menu position slightly (this is optional)
rect.origin.y = rect.size.height/3.0
rect.size.height = rect.size.height/2.0
myPopupMenu.sourceRect = rect
myPopupMenu.addAction(PopMenuAction(textLabel: "MyMenu-1", accessoryType: .none, handler: myMenuHandler1))
myPopupMenu.addAction(PopMenuAction(textLabel: "MyMenu-2", accessoryType: .none, handler: myMenuHandler2))
present(myPopupMenu, animated: true, completion: nil)
}
func myMenuHandler1(_ action: PopMenuAction?) -> Bool {
// do some work...
return false
}
func myMenuHandler2(_ action: PopMenuAction?) -> Bool {
// do some work...
return false
}
To transltae to Obj-C не должно быть большим усилием. Я установил код comce PopoverMenuController.swift here. Этот контроллер является автономным и содержит описание того, как его использовать.
Надеюсь, это поможет.
Посмотрите, как реализовать UIMenuController на UITableViewCell
1) На скриншоте не отображается меню. 2) Не отправляйте ответ, это просто ссылка на другой ответ. – rmaddy
Thats called Menu. Посмотрите: https://developer.apple.com/reference/uikit/uimenucontroller –