【发布时间】:2014-08-11 12:03:23
【问题描述】:
我正在尝试在设备旋转时重新定位弹出视图。我使用此代码创建弹出框:
settingsViewCtrl = storyboard.instantiateViewControllerWithIdentifier("settingsViewCtrl") as SettingsViewCtrl;
settingsPopoverCtrl = UIPopoverController(contentViewController: settingsViewCtrl);
settingsPopoverCtrl.delegate = self;
let m:CGFloat = min(view.frame.width, view.frame.height);
let s:CGSize = CGSizeMake(m - 100, m - 100);
let r:CGRect = CGRectMake(view.frame.width * 0.5, view.frame.height * 0.5, 1, 1);
settingsPopoverCtrl.setPopoverContentSize(s, animated: true);
settingsPopoverCtrl.presentPopoverFromRect(r, inView: view, permittedArrowDirections: nil, animated: true);
我在我的委托中使用willRepositionPopoverToRect ...
func popoverController(popoverController:UIPopoverController!, willRepositionPopoverToRect rect:UnsafeMutablePointer<CGRect>, inView view:AutoreleasingUnsafeMutablePointer<UIView?>)
{
if (settingsPopoverCtrl != nil && settingsViewCtrl != nil)
{
let r:CGRect = CGRectMake(self.view.frame.width * 0.5, self.view.frame.height * 0.5, 1, 1);
settingsPopoverCtrl.presentPopoverFromRect(r, inView: self.view, permittedArrowDirections: nil, animated: true);
}
}
但这不可能,因为当我旋转设备时,我收到了警告: 应用程序试图代表一个活动的弹出框演示: 并且弹出框也没有重新定位。
如何在 willRepositionPopoverToRect 中应用和更新定位 CGRect 以便弹出视图更新?是否可以修改提供的rect:UnsafeMutablePointer<CGRect> 并将其返回给弹出框?
更新:
如果您想为弹出框建议一个不同的矩形,请将 此参数中的新值。
所以问题是:如何将新值放入这个矩形?
【问题讨论】:
标签: cocoa-touch ios7 swift uipopovercontroller