UIPopoverPresentationController

UIPopoverPresentationController

我正在寻找使用新的uipopoverpresentationcontroller重新放置 pop 框的有效方法。我已经成功展示了该 pop 框,现在我想移动它而又不忽略并再次展示。我在使用该功能时遇到了麻烦:

(void)popoverPresentationController:(UIPopoverPresentationController *)popoverPresentationController
      willRepositionPopoverToRect:(inout CGRect *)rect
                           inView:(inout UIView **)view

我知道这是游戏的早期阶段,但是任何人都有一个如何有效执行此操作的示例,如果您与我分享它,我将不胜感激。提前致谢。

最佳答案

不幸的是,这种棘手的解决方法是我找到的唯一解决方案:

[vc.popoverPresentationController setSourceRect:newSourceRect];
[vc setPreferredContentSize:CGRectInset(vc.view.frame, -0.01, 0.0).size];

这会临时更改所显示 View 的内容大小,从而使 pop 框和箭头重新定位。大小的临时更改不可见。

看来这是苹果公司需要解决的问题-更改sourceViewsourceRectUIPopoverPresentationController属性时,如果已经提供了 pop 框,则它什么也不做(没有此替代方法)。

希望这也对您有用!

08-28 02:12