我使用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没有。
结果如下:
答案 0 :(得分:1)
我相信你误解了presentPopoverFromRect
是如何工作的,它指定了你的popover会显示的矩形,这不是你的popover的矩形。
例如,如果您有一个带框架的按钮(10,10,100,30),按下此按钮后想要显示弹出窗口,这是您应该传递给presentPopoverFromRect
的推荐框架,而不是弹出窗口帧。
要为popoverContentSize
指定popover使用_colorPickerPopover
属性的大小。
您还可以在popover子类中设置preferredContentSize
,例如viewDidLoad
方法。
答案 1 :(得分:0)
正如@Greg提到的那样,你实际上并没有设置UIPopover的大小。但是,我发现在preferredContentSize
中设置viewWillAppear
是最佳做法。