2011-03-30 55 views
1

我有一个UIPopOverController,其内容控制器是一个UINavigationController。 我根据推入/弹出的控制器的内容大小来调整弹出窗口大小。最初我通过使用方法presentPopoverFromRect:inView:permittedArrowDirections:animated:来展示popover。主播位置指向我作为参数传递的矩阵的中心。如果我将一个控制器(其内容大小很小)放到navigationController中,popover从底部收缩并移动到前面提到的矩形上方。UIPopoverController Anchor Position

我试图每次呈现popover(对于push/pop),锚点位置仍然@同一点但动画受到影响,看起来不太好。

需要做什么才能使锚点位置保持不变,而不管popover大小变化的变化如何?

回答

2

我遇到了同样的问题,似乎再次调用presentPopoverFromRect方法将保持停泊在同一位置

例如

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

希望它在你的情况介绍后UIPopoverController工程,以及

0

变化框架:

[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; 
+1

嗨!通过超过1次调用superview来获得基本视图是一个糟糕的主意。 – LightNight 2012-03-23 15:03:00