Как я могу реализовать это всплывающее меню в приложении iphone, как popover в ipad?iPhone всплывающее меню, как iPad popover?
EDIT: Это самый лучший на данный момент: https://github.com/runway20/PopoverView
Как я могу реализовать это всплывающее меню в приложении iphone, как popover в ipad?iPhone всплывающее меню, как iPad popover?
EDIT: Это самый лучший на данный момент: https://github.com/runway20/PopoverView
Посмотрите на реализацию iPhone UIPopoverController: WEPopover
Спасибо. Знаете ли вы, что если использование WEPopover в моем приложении нормально, если я хочу поместить его в магазин? – Luke47
Должно быть. Я не знаю деталей, так как коллега выполнил эту задачу, но у нас есть модифицированная версия этого приложения. – clozach
[Сурагский ответ ниже] (http://stackoverflow.com/a/32295907/4106164) теперь является стандартным способом сделать это после iOS 8. – Gordonium
На iPhone вы обычно используете UIActionSheet для стека кнопок, как это. Он скользит снизу вверх, а не появляется рядом с кнопкой, но это стандартное поведение на iPhone.
uhm ... как я могу его реализовать?PS: скриншот выше - это приложение iphone! – elp
@Paska: какое приложение для iphone это? Мне любопытно – user102008
@ user102008 Я не помню, но это вид с закругленным углом и изображением стрелки! Ничего простого! – elp
Снимок экрана выше не является списком UIActionSheet. Он выглядит как простой подкласс UIView с пользовательскими UIButtons поверх него. Итак, продолжайте и создайте подкласс в соответствии с вашими потребностями, а затем добавьте его в качестве подсмотра к вашему виду каждый раз, когда вам это нужно.
Вам нужно будет вручную создать экземпляр UIView с использованием пользовательского фонового изображения или рисунка с прозрачностью, добавить некоторые UIButtons (или другой тип пользовательского представления) сверху, а также каким-то образом обработать все штрихи вне этого вида.
Обратите внимание, что это нестандартный интерфейс. План действий будет более совместимым с HIG.
Существует одна, что даже лучше, чем WEPopover. Разработанная компанией под названием 50pixels, она называется FPPopover.
Вы можете скачать FPPopover на https://github.com/50pixels/FPPopover
Вы можете проверить WYPopoverController: https://github.com/sammcewan/WYPopoverController
Начиная с прошивкой 8, вы можете использовать UIPopoverPresentationController
для iPhone'ов в дополнение к IPADS.
UIBarButtonItem
к главной View Controller.UILabel
. Если вы хотите создать целые меню, просто добавьте представление таблицы или список кнопок.show
, выберите Present as Popover
.popoverSegue
(или любой другой строка, которую вы назвали его в коде).Это код для основного контроллера представления, который имеет кнопку пункт бар в нем.
class ViewController: UIViewController, UIPopoverPresentationControllerDelegate {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "popoverSegue" {
let popoverViewController = segue.destinationViewController
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.popoverPresentationController!.delegate = self
}
}
// MARK: - UIPopoverPresentationControllerDelegate method
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
// Force popover style
return UIModalPresentationStyle.None
}
}
Если вы хотите установить поповер появиться где-нибудь, кроме кнопки элемента панели (на UIButton
, например), то вам необходимо установить sourceView
и sourceRect
. См. this answer.
В приведенном выше примере происходит в основном из первого звена.
Это должен быть принятый ответ. – Crashalot
Чтобы получить поповер от кнопки элемента панели с правой стороны на навигационном контроллере, который является частью контроллера Tableview следующее работал для меня за Swift 4 и Xcode 9.
Modify «как! FilterVC» использовать название вашего контроллера вида поповер.
/// Shows a filter popover view
@IBAction func filterBtnPressed(_ sender: UIBarButtonItem) {
let popover = storyboard?.instantiateViewController(withIdentifier: FILTER_VC) as! FilterVC
popover.modalPresentationStyle = UIModalPresentationStyle.popover
popover.popoverPresentationController?.backgroundColor = UIColor.green
popover.popoverPresentationController?.delegate = self
popover.popoverPresentationController?.backgroundColor = ColorPalette.Blue.Medium
popover.popoverPresentationController?.sourceView = self.view
popover.popoverPresentationController?.sourceRect = CGRect(x: self.view!.bounds.width, y: 0, width: 0, height: 0)
popover.popoverPresentationController?.permittedArrowDirections = .up
self.present(popover, animated: true)
} }
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.none
}
@Kev Вы закрываете мой вопрос, потому что это не настоящий вопрос? После 12439 просмотров? и много комментариев/ответов? Это так странно, как вопрос? Maahh. – elp
По-моему, это совершенно правильный вопрос. –
Спасибо за ссылку !!! –