我的弹出窗口一直延伸到 ViewController 的底部
My popover extends all the whole way down to the bottom of the ViewController
我已经花了一整天的时间构建和重新构建一个简单的弹出视图。但无论我做什么,弹出窗口视图一直向下延伸到 ViewController 的底部,弹出窗口显示在其中。我是新手,但一整天都在谷歌上搜索,找不到任何解决方案为我工作。我将不胜感激任何帮助!在下面找到我的代码:
ViewController:
class ViewController: UIViewController,
UIPopoverPresentationControllerDelegate {
...
@IBAction func studyButtonPressed(sender: AnyObject) {
self.performSegueWithIdentifier("StudyPopover", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "StudyPopover" {
let vc = segue.destinationViewController
let controller = vc.popoverPresentationController
if controller != nil {
controller?.delegate = self
}
}
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return .None
}
这是结果的屏幕截图。弹出窗口应该是 50 x 50,但它一直向下延伸到 ViewController 的底部。
所以我终于找到了解决这个问题的方法。当我意识到弹出窗口在大多数设备模拟中工作正常但不适用于 iPhone 6 plus 时,我有了突破。然后我可以缩小我对解决方案的搜索范围,最后发现我必须将 traitCollection: UITraitCollection
添加到我的 adaptivePresentationStyleForPresentationController
函数中。
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .None
}
这使得弹出框在正常大小的 iPhone、iPhone 6 plus 或 iPad 设备上的行为相同。
我已经花了一整天的时间构建和重新构建一个简单的弹出视图。但无论我做什么,弹出窗口视图一直向下延伸到 ViewController 的底部,弹出窗口显示在其中。我是新手,但一整天都在谷歌上搜索,找不到任何解决方案为我工作。我将不胜感激任何帮助!在下面找到我的代码:
ViewController:
class ViewController: UIViewController,
UIPopoverPresentationControllerDelegate {
...
@IBAction func studyButtonPressed(sender: AnyObject) {
self.performSegueWithIdentifier("StudyPopover", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "StudyPopover" {
let vc = segue.destinationViewController
let controller = vc.popoverPresentationController
if controller != nil {
controller?.delegate = self
}
}
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return .None
}
这是结果的屏幕截图。弹出窗口应该是 50 x 50,但它一直向下延伸到 ViewController 的底部。
所以我终于找到了解决这个问题的方法。当我意识到弹出窗口在大多数设备模拟中工作正常但不适用于 iPhone 6 plus 时,我有了突破。然后我可以缩小我对解决方案的搜索范围,最后发现我必须将 traitCollection: UITraitCollection
添加到我的 adaptivePresentationStyleForPresentationController
函数中。
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .None
}
这使得弹出框在正常大小的 iPhone、iPhone 6 plus 或 iPad 设备上的行为相同。