使用自定义节标题向tableView添加行

时间:2011-08-10 20:43:47

标签: iphone objective-c ios cocoa-touch uitableview

我遇到的问题是,当我向表中添加行(带动画)时,节标题不会移动。我在viewDidLoad中创建了部分标题,如下所示:

CGRect header = [self.tableView rectForHeaderInSection:0];
UILabel *label = [[UILabel alloc] initWithFrame:headerFrame];
[label setText:@"---"];
label.backgroundColor = [UIColor clearColor];
[label setFont:headerFont];
[label setTextColor:[UIColor blueColor]];
[self.tableView addSubview:label];
[label release];

我应该以不同的方式添加它们吗? (是的,我知道这些是自定义表头,这就是我想要的)

我让用户使用选择器添加行。行添加如下:

    NSIndexPath* path = [NSIndexPath indexPathForRow:chan.channel_number inSection:section_number];

    NSArray* row_to_add = [[NSArray alloc] initWithObjects:path , nil];
    [self.tableView insertRowsAtIndexPaths:row_to_add withRowAnimation:UITableViewRowAnimationRight];

行添加得很好,但我的标题视图不会让步。如何让我的标题重新定位?

3 个答案:

答案 0 :(得分:1)

您需要使用真正的标题标题。您可以使用委托方法tableView:viewForHeaderinSection:并返回UILabel。

答案 1 :(得分:0)

如果您使用:

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

一切都应该没问题

答案 2 :(得分:0)

我想你可以试试-reloadSections:withRowAnimation:。这将导致重新加载您的部分及其页眉和页脚视图。