我在UIPopoverController中有一个UITabBarController,我只从一个UIBarButtonItem中显示它。如图所示,我希望弹出窗口占据允许的最大垂直高度。如果我点击显示它,然后关闭,然后旋转,它工作正常。但是,如果我在横向显示弹出窗口,然后旋转到纵向,它将不再填充整个垂直距离。我将标签栏控制器的内容大小属性设置为320 x 1000,我甚至尝试在每次设备旋转时重置它。更糟糕的是,当用户激活搜索栏时,弹出窗口缩小得非常小,并保持这种状态直到应用程序重新启动。
http://cl.ly/3JdC至http://cl.ly/3JdC
如何停止此操作,并使弹出窗口始终填满最大垂直尺寸?
答案 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.x
和frame.size.width
相应地使popover出现在UIBarButtonItem旁边的正确位置。
希望Apple能够在iOS的下一个版本中解决此问题。
此致