ios - Swift 3.0 中弹出窗口的尺寸不准确?

标签 ios swift

这里我为我的弹出窗口使用了 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/

相关文章:

ios - 如何将 NSDate 对象设置为午夜?

iphone - 错误 : "No devices registered in member center" - Invalid UDID?

ios - 应用过滤器时出现 NSInvalidArgumentException

swift - 访问结构属性

swift - 在 Swift 4 中处理 Firebase 5 身份验证错误

ios - UIViewController didRotateFromInterfaceOrientation : not being called

ios - 在构建时分配一个静态常量 ios xcode

swift - 从 iOS 10 开始安全传递 NSManagedObject 线程?

ios - InputToolbar 发送按钮不起作用

swift - [String : [object]] for specific key in object arrays 类型的过滤器字典