Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uipopovercontroller 超控器锚定位置_Uipopovercontroller - Fatal编程技术网

Uipopovercontroller 超控器锚定位置

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

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

我每次都试图展示popover(对于push/pop),锚定位置保持在@相同的点,但动画受到影响,看起来不太好


需要做些什么才能使锚定位置保持不变,而不考虑popover大小变化?

我遇到了同样的问题,再次调用
presentPopoverFromRect
方法将使锚定位置保持不变

e、 g


希望它也适用于您的情况

在演示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来获取基本视图是个坏主意。
 [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;