1

UITableView.tableHeaderViewにUISearchBarを配置しました。ただし、表示可能な上部を最初のセクションヘッダーに配置することで、searchBarをカバーします。tableViewを下にドラッグしたときにのみsearchBarが表示されます。tableViewのスクロールを解除すると、ラバーバンドが表示されなくなるため、半分覆われていて選択できません。助けてください。

以下は、私のUITableViewControllerviewDidLoadメソッドに配置されます。

UISearchBar *theSearchBar = [[UISearchBar alloc] init];
theSearchBar.delegate = self;
self.searchBar = theSearchBar;
[theSearchBar release];

self.tableView.tableHeaderView = self.searchBar;

結果は次のスクリーンショットです:http://imagebin.ca/view/6qNiwHR.html

4

2 に答える 2

5

それはサイジングの問題であることが判明しました。セットアップに次のコードを配置するチュートリアルを見つけました。

[theSearchBar sizeToFit];

すべてが完璧に見えるようになります。

UISearchDisplayControllerすでに確立されているものを使用しているためUISearchBar、問題を解決することはできません。

于 2010-01-29T15:06:02.517 に答える
0

tableHeaderViewは検索バーを配置するのに最適な場所ではないと思います。私は通常UISearchDisplayControllerを使用します:

searchController = [[UISearchDisplayController alloc]
                     initWithSearchBar:theSearchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;

これは非常に簡単で、検索用のいくつかの関数を提供します(デリゲート/データソース、この場合はコントローラーに実装する必要があります)。

私は通常ペン先からそれを行いますが、あなたはそれをあなたのビューコントローラーに割り当てる必要があると思います:

self.searchDisplayController=searchController;

また、ビューが表示されない場合は、ビューをtableViewに直接追加する必要があります。

リファレンスを見るか、問題があるかどうかを尋ねることができます。

于 2010-01-29T06:20:33.880 に答える