私は解決できない問題に直面しています...のおかげで、セクションヘッダーとセクションフッターが起動時に正しく表示されるグループ化されたテーブルがあります。
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
そして
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
しかし、後でそれらを更新する方法がわかりません。それらのテキストを変更する方法がわかりません。また、テキストラベルなどを変更することほど難しいことはないと思っていたので、とてもイライラしました。 「.text」プロパティ...)
運が悪かったので、ドキュメント全体を検索しました...
どんな助けでも大歓迎です!よろしく、Enrico
デリゲートメソッドで、セクション名を返すメソッド呼び出しを追加します。例:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
switch (section) {
case firstSectionTag:
return [self firstSectionTitle];
case secondSectionTag:
return [self secondSectionTitle];
// ...
default:
return nil;
}
}
- (NSString *)firstSectionTitle {
// generate first section title programmatically, e.g. "return [[NSDate date] description];"
}
// ...
次に、セクションのタイトルを更新する必要がある場合は、次のメソッドのようなものをトリガーするNSNotification
を送信します。
- (void)refreshTableSectionTitles:(NSNotification *)notification {
[tableView reloadData];
}
テーブルが大きく、より細かい制御が必要な場合は、NSNotification
にNSDictionary
を渡して、再ロードするセクションを含め、-refreshTableSectionTitles
の辞書を読んでセクションを取得しますNSInteger
、およびテーブルビューの -reloadSections:withRowAnimation:
を使用して、特定のセクションをリロードします。
以下を使用できます。
-(void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation
そして
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
ステートメントで新しいヘッダーテキストを定義します。
これにより、ヘッダー/フッターを変更しながら素敵なアニメーションが作成されます。
タイトルを変更するコードで次の行を使用します。
[[self theTableViewToChangeItsHeader]reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];