我有一个UIPopOverController,内容控制器是UINavigationController。
我正在根据推入/弹出控制器的控制器的内容大小调整弹出框大小。最初我使用方法presentPopoverFromRect:inView:permittedArrowDirections:animated:
来呈现popover。锚位置指向我作为参数传递的矩形的中心。如果我将一个控制器(其内容大小很小)推入navigationController,那么popover会从底部收缩并移动到前面提到的rect之上。
我每次都试图呈现弹出窗口(对于推/弹),锚点位置保持@相同点但是动画受到影响,看起来并不好。
无论弹道尺寸变化如何变化,需要做些什么才能使锚位置保持不变?答案 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;