Popover不规则地调整大小

时间:2010-11-20 00:36:12

标签: uitabbarcontroller uipopovercontroller autorotate

我在UIPopoverController中有一个UITabBarController,我只从一个UIBarButtonItem中显示它。如图所示,我希望弹出窗口占据允许的最大垂直高度。如果我点击显示它,然后关闭,然后旋转,它工作正常。但是,如果我在横向显示弹出窗口,然后旋转到纵向,它将不再填充整个垂直距离。我将标签栏控制器的内容大小属性设置为320 x 1000,我甚至尝试在每次设备旋转时重置它。更糟糕的是,当用户激活搜索栏时,弹出窗口缩小得非常小,并保持这种状态直到应用程序重新启动。

http://cl.ly/3JdChttp://cl.ly/3JdC

另外http://cl.ly/3JVF

如何停止此操作,并使弹出窗口始终填满最大垂直尺寸?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,发现只有在我使用该方法呈现UIPopoverController时才会发生:

- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated

但我使用时效果很好:

- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated

不幸的是,UIBarButtonItem没有可用于最后一种方法的框架Rect,所以我的修复是使用UIToolbar的框架并修改frame.origin.xframe.size.width相应地使popover出现在UIBarButtonItem旁边的正确位置。

希望Apple能够在iOS的下一个版本中解决此问题。

此致