2017-10-07 125 views
0

这里我把视图控制器作为我的弹出窗口 ,但按钮​​(弹出按钮)位于屏幕的底部,所以弹出窗口未达到原始高度(因为屏幕底部空间较少)。我需要它的全部身高。我正在像这样以编程方式显示弹出窗口。在swift 3.0中,弹出窗口的大小并不是确切的大小?

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) 
+0

尝试将箭头方向设置为向下,以便弹出窗口位于按钮上方? – Sweeper

+0

是的。 @sweeper它工作!通过添加此行popoverPresentationViewController?.permittedArrowDirections = UIPopoverArrowDirection.down –

回答

0

您的箭头方向设置为up

popoverPresentationViewController?.permittedArrowDirections = UIPopoverArrowDirection.up 

你似乎认为这意味着流行过将按钮的上方。但该物业被称为permittedArrowDirections。你正在告诉它使箭头指向。这将使得弹出窗口显示在锚点下面。

如果你想显示弹出以上的锚点,你需要箭头指向下方,对吗?

popoverPresentationViewController?.permittedArrowDirections = .down