编辑静态tableView单元格部分

时间:2013-01-08 13:06:47

标签: ios xcode static tableview cell

我有一个带有一些自定义单元格的静态tableView。我不想做的是以编程方式更改节标题。据我所知,因为单元格是静态的,我不能使用像cellForRowAtIndexPath这样的方法,所以我的问题是,它是否可能像它一样改变它们。

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

我尝试创建该部分的IBOutlet,但是我收到以下错误:

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

我能做的是编辑单元格的内容,而不是标题。

谢谢!

3 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:3)

您可以使用UITableViewDelegate协议方法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&gt;在你的.h文件中:

@interface SettingsViewController : UITableViewController <UITableViewDelegate> {

}

答案 2 :(得分:1)

如果您需要在视图显示为“实时”时更改标题,您可以这样做:

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

但这样做似乎并没有改变标签框的大小。我提前把它做得更大。 More details here.