UIPopoverController 锚点位置
Posted
技术标签:
【中文标题】UIPopoverController 锚点位置【英文标题】:UIPopoverController Anchor Position 【发布时间】:2011-03-30 03:49:43 【问题描述】:我有一个 UIPopOverController,它的内容控制器是一个 UINavigationController。
我正在根据推入/弹出的控制器的内容大小调整弹出框大小。最初,我使用presentPopoverFromRect:inView:permittedArrowDirections:animated:
方法呈现弹出框。锚点位置指向我作为参数传递的矩形的中心。如果我将控制器(其内容大小很小)推入 navigationController ,弹出框会从底部缩小并移动到我之前提到的矩形上方。
我尝试每次都显示弹出框(用于推送/弹出),锚点位置保持@相同点但是动画受到影响,看起来不太好。
无论弹出框大小变化如何变化,都需要做什么才能使锚点位置保持不变?
【问题讨论】:
【参考方案1】:我也遇到过同样的问题,看来再次调用presentPopoverFromRect
方法会使锚点保持在同一位置
例如
[self.myPopOver presentPopoverFromRect:rectOrigin inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
希望它也适用于您的情况
【讨论】:
【参考方案2】:呈现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;
【讨论】:
嗨!通过调用 superview 超过 1 次来获得基本视图是个坏主意。以上是关于UIPopoverController 锚点位置的主要内容,如果未能解决你的问题,请参考以下文章