2011-07-06 5 views
2

キーボードが表示されているときに灰色のオーバーレイがUISearchDisplayControllerに自動的に配置されるという問題があります。下の画像)。これは必ずしも起こるとは限りませんが、それは煩わしいほど頻繁に起こります。誰が何が起こっているのか知っていますか?ありがとう。UISearchDisplayController灰色のオーバーレイがテーブルを完全にカバーしていない

overlay issue

答えて

1

私は、これはAppleのコードのバグであると考えています。 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

1

は、この記事で見てください:http://www.cannonade.net/blog.php?id=1498

彼は(自分で呼ばれる)醜い回避策を提供し、問題を議論するだけでなく、それを修正する方法を言います!

関連する問題