如何修改或更改PopoverPresentationController的大小?

时间:2017-03-23 14:25:02

标签: ios swift popover

我在iOS Swift上使用了popoverPresentationController,我在popover中放了一个图像和文本?

我遇到的问题是内容对于popover来说太大了?是否可以设置尺寸?

图片低于我遇到的问题以及试用代码和错误消息?

  let myAlert = UIAlertController(title: "\n\n\n\n\n\n", message: "Correct answer selected, move on to next level", preferredStyle: UIAlertControllerStyle.actionSheet)

    let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default)
    {
        //  action in self.dismiss(animated: true, completion: nil)

        action in self.performSegue(withIdentifier: "goSegue1", sender: self)

        self.musicEffect.stop()
    }
    // put image into action sheet
    let imageView = UIImageView(frame: CGRect(x: 70, y: -30, width: 140, height: 140))
    imageView.image = #imageLiteral(resourceName: "wellDone2.png")

    myAlert.addAction(okAction);
    myAlert.view.addSubview(imageView)

    // display the alert messgae

    myAlert.popoverPresentationController?.sourceView = view
    myAlert.popoverPresentationController?.sourceRect = (sender as AnyObject).frame
    myAlert.preferredContentSize = CGSize(width: 500, height: 800)

Issue

1 个答案:

答案 0 :(得分:2)

弹出框的大小不受PopoverPresentationController控制。 PopoverPresentationController仅指定如何呈现内容,但内容本身(包括大小)由您获取控制器的视图设置,在您的情况myAlert中。

您有正确的想法尝试设置preferredContentSize,但是您将其置于错误的视图中。你应该改变一行

popoverPresentationController?.preferredContentSize = /* ... */

为:

myAlert.preferredContentSize = /* ... */

这应该可以解决问题。