理由はわかりませんが、iOS 7 の検索バーが右のスペースを離れています。iOS6で大丈夫です。
セクション インデックスを削除するとスペースが消えるため、セクション インデックスと関係があることはわかっていますが、修正方法がわかりません。何かご意見は?
理由はわかりませんが、iOS 7 の検索バーが右のスペースを離れています。iOS6で大丈夫です。
セクション インデックスを削除するとスペースが消えるため、セクション インデックスと関係があることはわかっていますが、修正方法がわかりません。何かご意見は?
UISearchBar を UIView に埋め込み、それを tableHeaderView として追加します。ストーリーボードでそのように構成するとうまくいきました。私は、iOS が tableHeaderView の UISearchBar のサイズを変更すると推測していますが、基本的な UIView はそのままにしておきます (その中を調べる必要はありません)。
また、セクション インデックスを透明にすることもできます。
[[UITableView appearance] setSectionIndexBackgroundColor:[UIColor clearColor]];
[[UITableView appearance] setSectionIndexTrackingBackgroundColor:[UIColor clearColor]];
より良い答えが表示されるまで、次のように検索バーのフレームを手動で変更しました。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
CGRect barFrame = self.searchBar.frame;
barFrame.size.width = self.view.bounds.size.width;
self.searchBar.frame = barFrame;
}
SearchDisplayController を使用すると、iPhone 6/6Plus でも同じ問題が発生しました。(スイフト使用)
検索バーのフレームを設定しようとしましたが、うまくいきませんでしたが、UISearchBar の textField をタップしてキャンセルすると、適切なサイズのビューが表示されることに気付きました。したがって、検索を使用してviewControllerのViewDidLoadで以下のコードを呼び出すことで、問題を解決できました。
self.searchController.setActive(true, animated: false)
self.searchController.setActive(false, animated: false)
self.contactsTableView.sectionIndexBackgroundColor = [UIColor clearColor];
その白い縁の理由は、インデックス レイヤーの背景が白く、検索バーの上にあるためです。これで十分です。
tableView のヘッダー ビューとして配置された UIView 内に検索バーを追加します。sectionIndexBackgroundColor
ヘッダーを覆うため、テーブルビューの色をクリアに設定します。
iOS 7、7.1 でテスト済み。
テーブル ビューは常にセクション インデックス ビューの右側に 15 ピクセルを残すため、テーブル ビューをリロードした後に検索バーのサイズを変更する必要があります。
初め:
self.tblData.sectionIndexBackgroundColor = [UIColor clearColor]; //(iOS >= 7 only)
不正行為の時間:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[self performSelector:@selector(resizeSearchBar) withObject:nil afterDelay:0.01];
}
- (void) resizeSearchBar
{
CGRect frame = self.searchBar.frame;
if (frame.size.width < self.tblData.frame.size.width) {
frame.size.width = self.tblData.frame.size.width;
}
self.searchBar.frame = frame;
}
- (void) reloadTableData // call it anytime you want to reload table view
{
[self.tblData reloadData];
[self performSelector:@selector(resizeSearchBar) withObject:nil afterDelay:0.01];
}
私のようにカンニングをしないでください。より簡単な方法を実行してください。
self.searchBar.searchBarStyle = UISearchBarStyleMinimal; // iOS >= 7 only
問題は右側の白いブロックなので、ブロックの色を検索バーの背景と同じに変更すると、正常に見えます。
ただ
if (IOS7) {
self.tableview.backgroundColor = [UIColor colorWithPatternImage:self.searchBar.backgroundImage];
}
テーブル ビューではなく、トップレベル ビューのサブビューとして検索バーを追加しました。自動レイアウトを使用して検索バーをトップ ガイドに固定し、検索バーとテーブル ビューの間の垂直スペースの制約を 0 にしました。
アプリケーションにも を添付しUISearcBar
ましたが、アプリケーションが回転もサポートしていても問題はありません。
で削除して再作成UISearchBar
してみてくださいstoryboard/xib