0

私は、前述のオブジェクトの最初のセクションと最初の行にある4 つの個別UITableViewのオブジェクトへのアクセスを共有する必要がある iPhone アプリの真っ只中にいます。UISearchBarUITableView

のフレームを 44 ピクセルオフセットしてから、検索バーを のサブビューとして追加しようとしましUITableViewた。それは機能しますが、テーブルビューのセルではないため、テーブルインデックスを使用して検索バーまでスクロールすることはできません。テーブルビュー自体に検索バーが必要です。UIViewControllerview

私の目標はUISearchBar、複数のテーブルビューの最初のセクションで同じにすることです。

本当にありがとう。

4

2 に答える 2

3

既に述べたように、検索バーを のtableHeaderViewプロパティにUITableView配置すると、手動で配置しなくてもテーブルの上部に配置できます。ただし、これがインデックス作成でどのように機能するかはわかりません。

を共有するUISearchBarことに関しては、テーブル ビューごとに 1 つ持つ代わりに、メモリの違いはごくわずかであり、デリゲートなどの設定と設定解除は深刻な問題になる可能性があるため、正当な理由が思いつきません。検索バーを共有したいと思った特別な理由はありましたか? 永続性が必要な場合は、検索バーのテキストを に保存してviewWillDisappearに設定できviewWillAppearます。

テーブル ヘッダーではなく、最初のセルに検索バーを配置したい場合は、次のようにします。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = //etc, normal cell creation

    if (indexPath.section == 0 && indexPath.row == 0) {
        [cell addSubview:self.searchBar];
    }
    return cell;
}

しかし、テーブル ヘッダーに検索バーを配置することは、はるかに一般的であり、管理がはるかに簡単です。

于 2010-04-05T00:52:53.277 に答える
1

UISearchBarを各tableViewのヘッダービューとして追加するだけで、それらを切り替えることができます。

[oldTableView setTableHeaderView:nil];
[newTableView setTableHeaderView:searchBar];

もちろん、あなたがやろうとしていることを私が誤解している可能性は十分にあります。その場合は、詳しく説明してください。

于 2010-04-04T06:17:41.890 に答える