0

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

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

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

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

4

1 回答 1

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从而使弹出框出现在 UIBarButtonItem 旁边的正确位置。

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

问候

于 2010-12-07T15:51:16.140 回答