提出的弹出控制器出现在错误的位置

时间:2016-03-07 14:57:18

标签: ios swift uipopovercontroller

我用它来呈现popover:

func presentPopoverController(controller: UIViewController, fromView view: UIView) {

    controller.modalPresentationStyle = UIModalPresentationStyle.Popover
    controller.preferredContentSize = CGSizeMake(400, 400)

    let popover = controller.popoverPresentationController

    popover?.permittedArrowDirections = .Any

    print(view.frame)

    popover?.sourceView = view
    popover?.sourceRect = view.frame  //***

    presentViewController(controller, animated: true, completion: nil)
}

这就是它在屏幕上的显示方式:

enter image description here

这是在控制台输出:

  

(326.0,15.0,63.0,10.0)

如果我删除了***的行,那么它看起来像是跟随,并且仍然在错误的位置:

enter image description here

控制台上的输出与上述相同。

1 个答案:

答案 0 :(得分:0)

应该有popover?.sourceRect = view.bounds而不是view.frame