0

ストーリーボードを使用してカスタム セクション ヘッダー ビュー クラスを実装しています。ビューが viewForHeaderInSection メソッド内に読み込まれるときに、必要に応じてさまざまなラベルとビューを設定できます。

static NSString *CellIdentifier = @"HeaderCell";
HourlyCustomTableSectionHeader* headerCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

NSString *sectionHeaderTitle = [[NSString alloc] init];

if(section==0){
    sectionHeaderTitle = @"TODAY";
headerCell.CustomHeaderTitle.text = sectionHeaderTitle;
}

ただし、新しいセルが表示可能になるたびに実行される別のメソッドからこれらの一部を更新したいと考えています。

基本的には、セクション ヘッダーの背景色を一番上のセルと一致するように設定し、ユーザーがスクロールすると更新されるようにしたいと考えています。

更新したいプロパティを参照しようとすると問題が発生します。簡単にするために、最初にカスタム テキスト ラベルを更新しようとしています。

HourlyCustomTableSectionHeader* customSectionHeadObj = [[HourlyCustomTableSectionHeader alloc] init];
customSectionHeadObj.CustomHeaderTitle.text =  @"new title";

Xcodeはパスに問題がないようです(エラーは表示されません)。テーブルビューが更新され、新しいセルが表示されるたびにメソッドが正常に呼び出されていることがわかりますが、セクションヘッダーのラベルは更新されていません。

私はこれを正しい方法で行っていますか?それとも、セクション ヘッダーを更新して更新を表示する必要があるのでしょうか。

4

2 に答える 2

0

私は、それをオンにするのは良い考えだと思います:

- (void)scrollViewDidScroll:(UIScrollView)scrollView
{

}

そして、ラベルの更新を呼び出すキュー/スレッドを確認する必要があります。メインスレッドからのみ呼び出す必要があります

于 2014-11-23T18:44:36.597 に答える
0

多くの調査と実験の結果、ストーリー ボード経由で追加されたカスタム セクション ヘッダーのプロパティを更新することはできないという結論に達しました。それ以外の場合は、誰かが証拠を投稿していただければ幸いです。

解決策/回避策として、私が実装した方法は、ヘッダーをテーブル ビュー viewForHeaderInSection の UIView としてプログラムで作成することでした。これらの UIView (およびそのサブビュー) は、必要に応じて (mityaika07 が提案した scrollViewDidScroll など) いつでも問題なく更新でき、テーブルのリロードやその他の複雑な操作も必要ありません。

問題を説明するのに役立つテストケースを追加しました

于 2014-12-17T08:48:55.160 に答える