3

アーティスト向けのiPodアプリに似たテーブルビューの動作を模倣しようとしています。これは、右側にセクションインデックスがあり、上部に検索バーがありますが、ビューが表示されると最初は非表示になっているセクションテーブルビューです。

私はsdk3.1.2とIBを使用しているので、単にaUISearchDisplayControllerをNIBにドラッグします。これにより、検索のためにすべてが接続されます。UISearchBar問題は、の最初のセクションにを追加しているために始まります。UITableView正しく理解している場合は、セクションインデックスの検索アイコンに直接タッチして検索バーにジャンプできるようにするために、これを行う必要がありますか?テーブルビューが表示されると、検索バーが表示されますが、サイズが変更され、上部のセクションインデックスの後ろに白いブロックが表示されます。UISearchBar興味深いことに、InterfaceBuilderに表示されるものとは異なる'サラウンドの色は使用されません。

小さなナビゲーションバーとをに追加して、これをテーブルビューセルに追加するためのヒントを見つけましUISearchBarUIView。これは機能しますが、ナビゲーションバーの背景の色は、通常予想される色(灰色)であり、上記のような異なる色ではありません。さらに興味深いことに、検索バーをタップして検索を開始し、[キャンセル]をタップすると、すべてが修正されます。検索バーが同じ場合のテーブルビューセル全体の背景は同じですか?

4

2 に答える 2

12

私自身の質問に答えましたが、他の初心者にも役立つかもしれません:

  • ビューが読み込まれたときに検索バーをテーブルビューヘッダーに配置し、contentOffsetをこの検索バーの高さ(通常は44ピクセル)にスクロールしますが、動的に確認するのは簡単です
  • セクションインデックスに「{search}」の検索アイコンを追加します
  • 検索用のsectionIndexSectionを-1にします
  • セクションインデックスタッチを処理するときは、検索「-1」に「特別な」インデックス値を使用します(contentOffsetをスクロールして(0、0)に戻します)

更新UITableViewIndexSearch:文書化されていない文字列 "{search}"の代わりに文字列定数文字列を使用します。つまり、実装時に配列項目の1つとして返します。

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

UITableViewDataSourceで。

于 2009-11-25T10:13:40.010 に答える
1

tableViewの先頭に検索コントローラーを配置し、次のことを試してください。

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
    if (index==0){
        [tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];
        return -1;
    }
...
}


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
        NSMutableArray * retValue =[NSMutableArray arrayWithArray:[YOUR ARRAY]];
        [retValue insertObject:UITableViewIndexSearch atIndex:0];
       return retValue;
 } 
于 2012-06-25T11:28:11.540 に答える