关于 uitabbarcontroller:Popover 不规则调整大小

Popover resizing erraticly

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

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

还有 http://cl.ly/3JVF

我怎样才能阻止这种情况,并让弹出框始终填满最大垂直尺寸?


我只是遇到了同样的问题,发现只有当我使用以下方法呈现 UIPopoverController 时才会发生这种情况:

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

但是当我使用时它工作正常:

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

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

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

问候