将弹出窗口显示为 iPhone 的全屏
Posted
技术标签:
【中文标题】将弹出窗口显示为 iPhone 的全屏【英文标题】:Display popover as full screen for iPhone 【发布时间】:2018-06-27 11:16:16 【问题描述】:我正在尝试使用UIPopoverPresentationController
来显示不占用整个屏幕的弹出框。已经检查了this 和其他教程,但是没有用。
这是我的代码:
@IBAction func temp(_ sender: UIButton)
let vc = UIStoryboard(name: "StayView", bundle: nil).instantiateViewController(withIdentifier: "StayViewPopOverViewController") as! StayViewPopOverViewController
vc.modalPresentationStyle = .popover
vc.preferredContentSize = CGSize(width: 180, height: 75)
let popover = vc.popoverPresentationController!
popover.sourceView = self.btnTemp
popover.sourceRect = self.btnTemp.bounds
popover.delegate = self
self.present(vc, animated: true, completion: nil)
我的委托方法:
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController!) -> UIModalPresentationStyle
return .none
但覆盖整个屏幕。 我试图在委托方法上设置断点,但解释器并没有就此停止。
anyBody 有任何解决方案或任何建议吗?
更新:我想这样实现:
【问题讨论】:
【参考方案1】:更新以下几行
vc.modalPresentationStyle = .popover
vc.preferredContentSize = CGSize(width: 180, height: 75)
与
vc.modalPresentationStyle = .overFullScreen
vc.preferredContentSize = view.frame.size
【讨论】:
在`let popover = vc.popoverPresentationController!`上给出零错误 我不想全屏 那你想要什么,你能不能更新问题以便给出正确的答案 我只想要尺寸为 (width: 180, height: 75) 的 popOver【参考方案2】:我终于得到了答案。 只需要像这样更新我的委托方法:
func adaptivePresentationStyle(
for controller: UIPresentationController,
traitCollection: UITraitCollection)
-> UIModalPresentationStyle
return .none
就是这样...效果很好!!!
【讨论】:
以上是关于将弹出窗口显示为 iPhone 的全屏的主要内容,如果未能解决你的问题,请参考以下文章
iOS8 上的 UIPopoverPresentationController 始终全屏显示
如何使 jQuery Mobile 弹出窗口出现在设备的全屏中
如何将弹出窗口添加到折线中,当鼠标悬停在地图上的折线上时显示传单