我正在寻找使用新的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 框和箭头重新定位。大小的临时更改不可见。
看来这是苹果公司需要解决的问题-更改
sourceView
的sourceRect
或UIPopoverPresentationController
属性时,如果已经提供了 pop 框,则它什么也不做(没有此替代方法)。希望这也对您有用!