iOS 8 - UIPopoverPresentationController移动弹出窗口?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

我正在寻找一种有效的方法来使用新的uipopoverpresentation控制器重新定位popover。我已经成功地呈现了popover,现在我想要移动它,而不会解散并再次呈现。我无法使用该功能:

(void)popoverPresentationController:(UIPopoverPresentationController *)popoverPresentationController
      willRepositionPopoverToRect:(inout CGRect *)rect
                           inView:(inout UIView **)view
提问于
用户回答回答于

以下是如何重新启用popover的示例:

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

     *rect = CGRectMake((CGRectGetWidth((*view).bounds)-2)*0.5f,(CGRectGetHeight((*view).bounds)-2)*0.5f, 2, 2);

我也使用这种方法来确保在将* rect和*视图设置为原始sourceRect和sourceView之后,弹出窗口移动到正确的位置。

用户回答回答于

解决方案:

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

扫码关注云+社区

领取腾讯云代金券