次のように自動レイアウトを使用して設定されたテーブル ビューの上に検索バーがあります。
_searchBar.translatesAutoresizingMaskIntoConstraints = NO;
_tableView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_searchBar]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_searchBar)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_searchBar][_tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_searchBar, _tableView)]];
実行するとすべてがきれいに見えます。しかし_searchBar.showsScopeBar = YES;
、検索バーの編集を開始する前に行うと、検索バーとテーブル ビューのサイズが自動的に変更されません。しても[_searchBar sizeToFit]
、テーブルビューのサイズが変更されず、下に移動しません。どうして??
注: テーブル ビューのヘッダーとして検索バーを配置していません。親ビューと 2 つのサブビューだけです。注 2:呼び出す前後のサイズを確認したところintrinsicContentSize
、実際にサイズが変わりました。_searchBar
_searchBar.showsScopeBar = YES;