申し訳ありませんが、私はこれに8時間以上を費やしました。UISearchController検索バーの位置が64ポイント低下する
検索バーが低すぎる正確に64点を登場さ:
他のフレームのすべてが正確に正しいです。
編集: - UISearchController
さんの表示が間違っていますorigin.y
です。それは、私は、このメソッドを追加した場合、それは0 あるべき時に、64に設定されます:
- (void)didPresentSearchController:(UISearchController *)searchController
{
[super didPresentSearchController:searchController];
searchController.view.frame = CGRectMake(0, 0, searchController.view.frame.size.width, searchController.view.frame.size.height);
}
その後景色が並びます。しかし、ジャンキーはジャンプするので。 willPresentSearchController
のフレームを修正しても、コントローラーが表示された後に何らかの種類のレイアウトを実行しているに違いありません。
SparkInspectorを使用して、UISearchBarContainerView
のフレームを原点64(何を0に設定するか)から編集すると、問題は解決されます。私はインターフェイスBuilderを使用していない
、すべてがコードに設定されています。
は、ここに私の関連する構成です。 definesPresentationContext
の設定が正しいことが肯定的です。
VCは普通のUINavigationController
であり、これはSplitViewController内にあります(ただし、iPhoneにも問題があります)。
アイデア? UINavigationBar
私はカスタムコンテナビューコントローラモデルを使用する別のコントローラも持っていますが、これはより複雑で動作します。だから今UISearchBar
が正しく配置されます
を、しかし、プレゼンテーションコンテキストは、完全なビューを占めるようにUISearchController
のテーブルビューを引き起こし、間違っている:私は
self.definesPresentationContext = NO;
を設定すると
これが起こります。あなたのtableViewは、カスタムのUITableViewとないのUITableViewControllerあなたがトップを非表示にする場合には
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
{
if (bar == self.searchController.searchBar) {
return UIBarPositionTopAttached;
}
else { // Handle other cases
return UIBarPositionAny;
}
}
ご質問いただきありがとうございます。 それは助けました。自己。definedPresentationContext = NO; – Coder