3

いくつかのカスタム セルを含む静的な tableView があります。私がしたくないのは、セクションのタイトルをプログラムで変更することです。私が知る限り、セルは静的であるため、cellForRowAtIndexPath などのメソッドを使用できないため、私の質問は、それらを変更する可能性があるかどうかです。

self.tableView.section1.text = @"title1"; // something like this?

セクションの IBOutlet を作成しようとしましたが、次のエラーが発生します。

Unknown type name 'UITableViewSection': did you mean 'UITableViewStyle?'

私ができることは、セルの内容を編集することですが、ヘッダーは編集できません。

ありがとう!

4

3 に答える 3

6

viewForHeaderInSectionメソッドを使用します。

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


        UILabel *label1 = [[UILabel alloc] init];
        label1.frame = CGRectMake(0, 0, 190, 20);
        label1.textColor = [UIColor blackColor];
        // label1.font = [UIFont fontWithName:@"Helvetica Bold" size:16];
        [label1 setFont:[UIFont fontWithName:@"Arial-BoldMT" size:14]];
        label1.textAlignment = UITextAlignmentCenter;

        label1.text =[NSString stringWithFormat:@"Title %d",section];
// If your title are inside an Array then Use Below Code 

       label1.text =[titleArray objectAtindex:section];

        label1.textColor = [UIColor whiteColor];
        label1.backgroundColor = [UIColor clearColor];




UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];
    [view addSubview:label1];

    view.backgroundColor = [UIColor orangeColor];
         return view;

    }

使用したい場合titleForHeaderInSectionは、以下のコードを使用してください。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{

return [NSString stringWithFormat:@"Title %d",section];
// If your title are inside an Array then Use Below Code 

       return [titleArray objectAtindex:section];
}
于 2013-01-08T13:11:38.210 に答える
3

UITableViewDelegate Protocol メソッドを使用できますtableview:titleForHeaderInSection:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

    NSString *sectionTitle = @"";

    switch (section) {

        case 0: sectionTitle = @"Section 1"; break;
        case 1: sectionTitle = @"Section 2"; break;
        case 2: sectionTitle = @"Section 3"; break;

        default:
            break;
    }

    return sectionTitle;
}

<UITableViewDelegate必ず.h ファイルで >を宣言してください。

@interface SettingsViewController : UITableViewController <UITableViewDelegate> {

}
于 2013-01-08T13:12:43.030 に答える
2

ビューが「ライブ」で表示されているときにヘッダーを変更する必要がある場合は、次のように行うことができます。

int sectionNumber = 0;
[self.tableView headerViewForSection:sectionNumber].textLabel.text = @"Foo Bar";

しかし、そうしてもラベル枠のサイズは変わらないようです。私は事前に自分のものを大きくしました。 詳細はこちら。

于 2015-01-20T09:19:49.510 に答える