UIPopoverController不会调整大小

时间:2014-07-15 14:25:26

标签: ios resize swift uipickerview uipopovercontroller

我使用UIPopoverController显示视图,在该视图中我有一个UIPickerView,当使用presentPopoverFromRect时,PopOverControll显示在x和y的正确位置但不调整控件的大小。这个viewController是一个单独的.swift文件。

var buttonCenter: CGPoint = BtCheque.center;            
var rect:CGRect = CGRectMake(buttonCenter.x, 1, 120, 90);                
_colorPickerPopover.presentPopoverFromRect(rect, inView: self.view , permittedArrowDirections: UIPopoverArrowDirection.Up, animated: true);

UIPickerView的大小正确,但popUp没有。

结果如下:

Image result

2 个答案:

答案 0 :(得分:1)

我相信你误解了presentPopoverFromRect是如何工作的,它指定了你的popover会显示的矩形,这不是你的popover的矩形。

例如,如果您有一个带框架的按钮(10,10,100,30),按下此按钮后想要显示弹出窗口,这是您应该传递给presentPopoverFromRect的推荐框架,而不是弹出窗口帧。

要为popoverContentSize指定popover使用_colorPickerPopover属性的大小。

您还可以在popover子类中设置preferredContentSize,例如viewDidLoad方法。

答案 1 :(得分:0)

正如@Greg提到的那样,你实际上并没有设置UIPopover的大小。但是,我发现在preferredContentSize中设置viewWillAppear是最佳做法。