这里我为我的弹出窗口使用了 View Controller 但按钮(弹出按钮)位于屏幕底部,因此弹出窗口不会达到其原始高度(因为屏幕底部的空间较小)。我需要它的全高。我像这样以编程方式显示弹出窗口。
let popoverViewController:TimeViewController = self.storyboard!.instantiateViewController(withIdentifier: "TimePicker_ViewController") as! TimeViewController
popoverViewController.index_val = index
popoverViewController.t_value = t_value
popoverViewController.delegate = self
popoverViewController.modalPresentationStyle = .popover
popoverViewController.preferredContentSize = CGSize.init(width: 250, height: 250)
let popoverPresentationViewController = popoverViewController.popoverPresentationController
popoverPresentationViewController?.permittedArrowDirections = UIPopoverArrowDirection.up
popoverPresentationViewController?.sourceView = button
popoverPresentationViewController?.sourceRect = button.bounds
present(popoverViewController, animated: true, completion: nil)
最佳答案
您将箭头方向设置为向上
:
popoverPresentationViewController?.permittedArrowDirections = UIPopoverArrowDirection.up
您似乎认为这意味着弹出窗口将显示在按钮顶部。但该属性名为permissedArrowDirections
。你告诉它让箭头朝上。这将使弹出窗口显示在 anchor 下方。
如果您想在 anchor 上方显示弹出窗口,您需要将箭头指向下方,对吗?
popoverPresentationViewController?.permittedArrowDirections = .down
关于ios - Swift 3.0 中弹出窗口的尺寸不准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46619601/