NSPopover для iOS - PullRequest
       6

NSPopover для iOS

1 голос
/ 09 августа 2011

Есть ли что-то похожее на приложения NSPopover для iOS? Он появляется в библиотеке объектов для Mac, но не для iPhone и iPad, хотя я загрузил приложения, использующие эту (или хотя бы очень похожую) функцию.

Итак, мой вопрос: Есть ли законный способ реализовать это?

Ответы [ 4 ]

3 голосов
/ 09 августа 2011

UIPopoverController - это то, что вы ищете.

2 голосов
/ 09 августа 2011

Существует UIPopOverController, но его использование ограничено iPad:

Контроллеры Popover предназначены для использования исключительно на устройствах iPad. Попытка создать его на других устройствах приводит к исключению.

( источник )

Для iPhone / iPod touch вы можете использовать внешний каркас, например WEPopOver .

0 голосов
/ 06 апреля 2017

Для тех, кто гуглит это, UIPopoverController теперь доступно для iPhone и iPad . Вы можете сделать всплывающие окна, которые выглядят одинаково на обоих (на iOS 9, я думаю).

Шаг 1 : включите UIAdaptivePresentationControllerDelegate и UIPopoverPresentationControllerDelegate в определение вашего класса

Шаг 2: Переопределите презентацию где-нибудь в вашем классе следующим образом:

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
  return .none
}

Шаг 3: Когда вы представляете контроллер представления, вы говорите ему использовать стиль popover. Примерно так:

//I pull my popover from a separate storyboard, but any modal view will do
let storyboard = UIStoryboard(name: "Popovers", bundle: nil)
let modal = storyboard.instantiateViewController(withIdentifier: "AnyPickerModal") as! AnyPickerVC
modal.modalPresentationStyle = UIModalPresentationStyle.popover

let pc = modal.popoverPresentationController
pc?.permittedArrowDirections = .any
pc?.sourceView = <your button or view you tap to show the popover>
pc?.sourceRect = <your button or view>.bounds

//How big the popover should be
modal.preferredContentSize = CGSize(width: 300, height: 180)

pc?.delegate = self

self.present(modal, animated: true, completion: nil)

Представленный вами модал будет отображаться как поповер на на iPhone и iPad. Прикреплен скриншот из моего приложения для iPhone.

enter image description here

Удачного кодирования!

0 голосов
/ 20 июля 2012

Есть они называются UIPopovers,

Вот учебник: http://www.youtube.com/watch?v=1iykxemuxbk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...