UIPopoverController锚定位置

时间:2011-03-30 03:49:43

标签: uipopovercontroller

我有一个UIPopOverController,内容控制器是UINavigationController。 我正在根据推入/弹出控制器的控制器的内容大小调整弹出框大小。最初我使用方法presentPopoverFromRect:inView:permittedArrowDirections:animated:来呈现popover。锚位置指向我作为参数传递的矩形的中心。如果我将一个控制器(其内容大小很小)推入navigationController,那么popover会从底部收缩并移动到前面提到的rect之上。

我每次都试图呈现弹出窗口(对于推/弹),锚点位置保持@相同点但是动画受到影响,看起来并不好。

无论弹道尺寸变化如何变化,需要做些什么才能使锚位置保持不变?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,似乎再次调用presentPopoverFromRect方法会使锚点保持在同一位置

e.g。

[self.myPopOver presentPopoverFromRect:rectOrigin inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

希望它也适用于您的情况

答案 1 :(得分:0)

在呈现UIPopoverController之后更改框架:

 [popupController presentPopoverFromRect:btn.frame inView:self.view permittedArrowDirections:0 animated:YES];

CGRect popupFrame = popupController.contentViewController.view.superview.superview.superview.frame;
popupFrame.origin.y = btn.frame.origin.y + btn.frame.size.height+75;

popupController.contentViewController.view.superview.superview.superview.frame = popupFrame;
相关问题