iPhone 全屏显示弹出框
Display popover as full screen for iPhone
我正在尝试使用 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
}
但是那覆盖了整个屏幕。
我试图在委托方法上放置断点,但解释器并没有就此停止。
任何人都可以有任何解决方案或任何建议吗?
已更新:我想这样实现:
更新以下行
vc.modalPresentationStyle = .popover
vc.preferredContentSize = CGSize(width: 180, height: 75)
和
vc.modalPresentationStyle = .overFullScreen
vc.preferredContentSize = view.frame.size
终于找到答案了
只需要像这样更新我的委托方法:
func adaptivePresentationStyle(
for controller: UIPresentationController,
traitCollection: UITraitCollection)
-> UIModalPresentationStyle {
return .none
}
就是这样...效果很好!!!
我正在尝试使用 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
}
但是那覆盖了整个屏幕。
我试图在委托方法上放置断点,但解释器并没有就此停止。
任何人都可以有任何解决方案或任何建议吗?
已更新:我想这样实现:
更新以下行
vc.modalPresentationStyle = .popover
vc.preferredContentSize = CGSize(width: 180, height: 75)
和
vc.modalPresentationStyle = .overFullScreen
vc.preferredContentSize = view.frame.size
终于找到答案了
只需要像这样更新我的委托方法:
func adaptivePresentationStyle(
for controller: UIPresentationController,
traitCollection: UITraitCollection)
-> UIModalPresentationStyle {
return .none
}
就是这样...效果很好!!!