2010-11-20 32 views
0

我有一個UITabBarController裏面的UIPopoverController,我只從一個UIBarButtonItem顯示。顯示時,我希望彈出窗口占用允許的最大垂直高度。如果我點擊顯示它,然後解散,然後旋轉,它工作正常。但是,如果我將橫向顯示在橫向上,然後旋轉到縱向,則不再會填充整個垂直距離。我將標籤欄控制器的內容大小屬性設置爲320×1000,而且我甚至在每次設備旋轉時都嘗試將其重置。更糟的是,當用戶激活搜索欄時,彈出窗口縮小得非常小,並保持這種狀態直到應用程序重新啓動。彈出窗口大小調整不規則

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

而且http://cl.ly/3JVF

我怎樣才能阻止這一點,並有酥料餅總是填補了最大垂直尺寸?

回答

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沒有框架您可以使用這最後一個方法,所以我的修補程序是使用UIToolbar的框架並相應地修改frame.origin.xframe.size.width以使彈出窗口顯示在UIBarButtonItem旁邊的正確位置。

希望Apple會在iOS的下一個版本中解決這個問題。

問候

+2

我把'self.contentSizeForViewInPopover = CGSizeMake(0,0); self.contentSizeForViewInPopover = CGSizeMake(320,1000);'進入'-viewDidAppear:'方法,這也工作。雖然感覺像一個黑客。 – axiixc 2010-12-20 17:13:21