7

理由はわかりませんが、iOS 7 の検索バーが右のスペースを離れています。iOS6で大丈夫です。

セクション インデックスを削除するとスペースが消えるため、セクション インデックスと関係があることはわかっていますが、修正方法がわかりません。何かご意見は?

ここに画像の説明を入力

4

10 に答える 10

7

UISearchBar を UIView に埋め込み、それを tableHeaderView として追加します。ストーリーボードでそのように構成するとうまくいきました。私は、iOS が tableHeaderView の UISearchBar のサイズを変更すると推測していますが、基本的な UIView はそのままにしておきます (その中を調べる必要はありません)。

また、セクション インデックスを透明にすることもできます。

[[UITableView appearance] setSectionIndexBackgroundColor:[UIColor clearColor]];
[[UITableView appearance] setSectionIndexTrackingBackgroundColor:[UIColor clearColor]];
于 2013-10-10T00:30:20.733 に答える
6

より良い答えが表示されるまで、次のように検索バーのフレームを手動で変更しました。

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];        

    CGRect barFrame = self.searchBar.frame;
    barFrame.size.width = self.view.bounds.size.width;
    self.searchBar.frame = barFrame;

}
于 2013-10-03T10:07:41.783 に答える
4

SearchDisplayController を使用すると、iPhone 6/6Plus でも同じ問題が発生しました。(スイフト使用)

検索バーのフレームを設定しようとしましたが、うまくいきませんでしたが、UISearchBar の textField をタップしてキャンセルすると、適切なサイズのビューが表示されることに気付きました。したがって、検索を使用してviewControllerのViewDidLoadで以下のコードを呼び出すことで、問題を解決できました。

self.searchController.setActive(true, animated: false)
self.searchController.setActive(false, animated: false)
于 2015-02-09T11:13:01.017 に答える
3
self.contactsTableView.sectionIndexBackgroundColor = [UIColor clearColor];

その白い縁の理由は、インデックス レイヤーの背景が白く、検索バーの上にあるためです。これで十分です。

于 2015-06-19T19:11:23.867 に答える
2

ここに画像の説明を入力

tableView のヘッダー ビューとして配置された UIView 内に検索バーを追加します。sectionIndexBackgroundColorヘッダーを覆うため、テーブルビューの色をクリアに設定します。

iOS 7、7.1 でテスト済み。

于 2014-05-01T06:06:20.757 に答える
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
于 2013-10-04T03:23:42.880 に答える
0

問題は右側の白いブロックなので、ブロックの色を検索バーの背景と同じに変更すると、正常に見えます。

ただ

if (IOS7) {
    self.tableview.backgroundColor = [UIColor colorWithPatternImage:self.searchBar.backgroundImage];
}
于 2015-05-20T10:15:09.413 に答える
0

テーブル ビューではなく、トップレベル ビューのサブビューとして検索バーを追加しました。自動レイアウトを使用して検索バーをトップ ガイドに固定し、検索バーとテーブル ビューの間の垂直スペースの制約を 0 にしました。

于 2014-03-18T16:54:47.763 に答える
0

アプリケーションにも を添付しUISearcBarましたが、アプリケーションが回転もサポートしていても問題はありません。

で削除して再作成UISearchBarしてみてくださいstoryboard/xib

于 2013-10-03T09:53:41.313 に答える