2011-07-06 128 views
2

我有一個問題,當顯示鍵盤時,灰色覆蓋會自動放在我的UISearchDisplayController上並不總是完全覆蓋表區域(您可以在底部看到白色下圖)。這並不總是發生,但它很頻繁,它很煩人。任何人都知道發生了什麼事?謝謝。UISearchDisplayController灰色覆蓋不完全覆蓋表

overlay issue

回答

1

我相信這是蘋果的代碼中的錯誤。在與UIPopoverControllers進行了廣泛的合作之後,我發現在執行大小計算時,彈出式窗口在很多情況下會被混淆,以至於它是否有導航欄。

我相信,如果您測量白色框的高度,您會發現它恰好是37像素:彈出窗口中導航欄的高度。 (由於彈出窗口中的導航欄不像大多數導航控制器那樣高44像素,因爲它們嵌入到彈出窗口的邊框中。)

如果您能夠訪問灰色疊加層並手動調整其大小,則可以考慮導航的高度酒吧或缺乏。不幸的是,由於疊加層是由搜索欄控制的,因此您處於一種束縛之中。

我的建議是嘗試讓彈出窗口重新計算其內容的大小後,它的出現或調整大小。我使用這個模式時,動態調整包括一個導航欄出現時,它UIPopover:

// UIViewController subclass with a navigation bar which is displayed in a popover 
// _popoverController is a (unretained) pointer to the UIPopoverController in which this view controller is displayed 

- (void)viewDidLoad 
{ 
    [self.view sizeToFit]; 

    CGSize newSize; // Dynamically computed based on popover contents 
    self.contentSizeForViewInPopover = newSize; 
    newSize.height += 37; // Account for popover navigation bar 
    [_popoverController setPopoverContentSize:size animated:YES]; 
}

我不知道這個答案多少會有所幫助,但我希望這將至少給你在正確的推方向。

+0

謝謝你會嘗試! – paranoidroid