如何以编程方式调整模态视图的大小(SWIFT)

时间:2015-07-23 11:27:57

标签: swift uiview uiviewcontroller modal-dialog

我只想在现有的主UIViewController / UIView上显示一个小选项对话框,这样在IPad上我会看到一个小对话框,在后台我会看到主视图。

我设法以模式视图样式显示UIViewController / UIView,如下所示:

func showoptions(){

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = storyboard.instantiateViewControllerWithIdentifier("Options") as! UIViewController

    controller.modalPresentationStyle = UIModalPresentationStyle.Popover

    let popoverPresentationController = controller.popoverPresentationController

    // result is an optional (but should not be nil if modalPresentationStyle is popover)
    if let _popoverPresentationController = popoverPresentationController {

        // set the view from which to pop up
        _popoverPresentationController.sourceView = self.view;

        //_popoverPresentationController.sourceRect = CGRectMake(60, 100, 500, 500)
        //_popoverPresentationController. .setPopoverContentSize(CGSizeMake(550, 600), animated: true)
        //_popoverPresentationController.sourceView.sizeToFit();

        // present (id iPhone it is a modal automatic full screen)
        self.presentViewController(controller, animated: true, completion: nil)
    }
}

但我还有一些问题: 1.如何摆脱边界处显示的箭头。 2.如何调整此模态视图的大小。它显示为小,我想将它适合UIControllerView / UIView中的最大控件。

任何帮助?

2 个答案:

答案 0 :(得分:0)

我需要类似的东西,并最终将视图控制器呈现为在当前上下文中具有透明背景的模态。在那里,我用我想要的东西做了一个更小的不透明的UIView。

答案 1 :(得分:0)

  1. 尝试将_popoverPresentationController.permittedArrowDirections更改为清空选项集
  2. 更改controller.preferredContentSize以符合您所需的尺寸