41

IB を使用して別の .xib にカスタム ヘッダー セクション ビューを作成したい

ただし、IBでは、コンポーネントUITableViewHeaderFooterView(UITableViewCellに似ています)を見つけられず、再利用を割り当てることができません

では、カスタムヘッダーセクションで作成する方法は?

UITableViewHeaderFooterView から継承するクラス MySection を作成します .xib、MySection.xib を作成します セルを再利用するために xib を登録します

問題は、initWitReuseIdentifier の使用方法です....

4

9 に答える 9

70

それは絶対に可能であり、Apple はここで例を提供しています。

サンプル コードをダウンロードして、SectionHeaderView.xib を確認します。

その方法は、単一の UIView を持つ xib を作成することです。次に、クラス タイプを UITableViewHeaderFooterView から継承するクラスに設定します。

UITableViewHeaderFooterView から継承するクラスを持つ nib を取得したら、以下を呼び出して、ヘッダーまたはフッターとして再利用するクラスを登録します。

static NSString * const SectionHeaderViewIdentifier = @"SectionHeaderViewIdentifier";

[self.tableView registerNib:[UINib nibWithNibName:@"SectionHeaderView" bundle:nil] forHeaderFooterViewReuseIdentifier:SectionHeaderViewIdentifier];

ビューを使用するには、次のようにテーブル デリゲート メソッド tableView:viewForHeaderInSection: を実装します。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSinteger)section {

    SectionHeaderViewClass *sectionHeaderView = (SectionHeaderView *)[tableView dequeueReusableHeaderFooterViewWithIdentifier:SectionHeaderViewIdentifier];

    // Do stuff...

    return sectionHeaderView;
}
于 2013-11-19T14:09:32.170 に答える
3

次の回避策により、IB 項目を変数としてコードにドラッグして割り当てることができます。UITableViewHeaderFooterView はそのままでは許可しません。

  1. (New File/CocoaTouchClass) UITableViewHeaderFooterView .hmxib を普通に作成

  2. スーパークラスの名前を一時的に UITableViewHeaderFooterView から UIView に変更します。必要に応じて UI アイテムをコードにドラッグして割り当てます。IB はキー値を正しく割り当て、完了したら UITableViewHeaderFooterView に戻します。

  3. テーブルビューで、 registerNib:を使用してregisterClass:の代わりに登録します。テーブルビューの残りを通常どおりに準備します(つまり、デキュー)。
于 2016-01-22T04:39:19.283 に答える