适用于iOS的NSPopover
是否有类似于iOS应用程序的NSPopover? 它出现在Mac的对象库中,但不适用于iPhone和iPad,尽pipe我已经下载了使用这个(或至less一些非常相似)function的应用程序。
所以我的问题: 是否有一个合法的方式来实现呢?
UIPopoverController
是你在找什么。
有UIPopOverController
,但它的使用仅限于iPad:
Popover控制器专门用于iPad设备。 试图在其他设备上创build一个会导致exception。
( 来源 )
对于iPhone / iPod touch,您可以使用外部框架,如WEPopOver 。
有他们被称为UIPopovers,
下面是教程: http : //www.youtube.com/watch?v = 1iykxemuxbk
为了这些谷歌search, UIPopoverController
现在可用于iPhone和iPad 。 你可以使两个看起来相同的popovers(我相信iOS 9的)。
第1步 :在您的类定义中包含UIAdaptivePresentationControllerDelegate
和UIPopoverPresentationControllerDelegate
第2步:在你的class级的某个地方重写演示文稿,如下所示:
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上的popup窗口。 附件是我的iPhone应用程序的屏幕截图。
快乐的编码!