2011-10-01 5 views
7

UISearchBarUITableViewにドロップするだけで、xibのUITableViewのtableHeaderViewとしてUISearchBarを追加しました。 テーブルに6つ以上の行がある場合、正常に動作しています。 行未満の場合、UITableViewはスクロールしません。xibのtableHeaderViewとしてUISearchBarを追加できない

同時に、次の文を使用して.mファイルにプログラムでUITableViewのtableHeaderViewとしてUISearchBarを追加すると、EVERYTHING WORKS FINEとなります。

tableViewTemp.tableHeaderView = searchBarFriends; 

問題がある可能性がありますどのような 、私には非常に奇妙なようですか?

お願いします、ありがとうございます。

答えて

2

ここでは、私が少しトリックです。)あなたの検索バーあなたのUITableViewのサブビューにしないでください。あなたのnibファイルに両方のインスタンスを追加して、UITableViewControllerのIBOutletsとしてそれらを結び付けてください。次に、検索バーをテーブルのヘッダービューとして設定します。そうすることで、フレームが重なったりタッチイベントを妨げたりする心配がありません。ここではあなたがそれを行う方法は次のとおりです。

は、あなたのテーブルのヘッダビューを設定し

@property (nonatomic, retain) IBOutlet UISearchBar *searchBar; 

あなたのテーブルビューのヘッダファイルにをプロパティを作成します:あなたのための高さを設定

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    return self.searchBar; // The property you wired up in IB 
} 

をヘッダーまたは(UISearchBar)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; // The height of the search bar 
} 

これだけです。今では、グループ化されたテーブルビューや複数のセクションを持つテーブルを持っていても、単純なテーブルのきれいなソリューションがあれば、これは最適なソリューションではないかもしれません。それ以外の場合は、検索バーのフレームとテーブルビューをコード内で調整する必要があります。なぜなら、それらは重複し、タッチの問題があるからです。お役に立てれば!

+0

ありがとう、ジェリー、私はこれを試してみます。 –

+0

私はこれを私のアプリで使用しました。魅力的に働くはずです。それが受け入れられた場合はこれをマークしてください;) – jerrylroberts

1

それは

enter image description here

+0

私はこれだけのバディを追加しましたが、6レコード未満ではスクロールできませんでした。 –

+0

私の場合は1行でもうまく動作します – Narayana

+0

ありがとう、ナラヤナ、それは他の問題かもしれません。私は自分のコードをチェックします。 –

0

に動作します階層以下のようにあなたが検索バーを追加した場合、私はほとんど同じ問題を抱えていた(私にとって、それは任意の数の行と全くスクロールしないだろうが、それはのようにだろうすぐに私は検索バーを削除した)。それはviewDidLoadでこれを追加する修正:

self.tableView.alwaysBounceVertical = YES; 
+0

ありがとうpt2ph8、私もこれを試してみます。 –

関連する問題