2011-08-21 12 views
0

我需要创建一个带有自定义单元格的表格,它具有不同的大小(高度)。 我可以只改变一个或两个单元格的行大小吗? 任何想法如何?与其他行不同的行的大小

感谢

回答

2

创建一个可变数组,其中包含所有行的高度,如果您有多个节,则可以将多个数组放入可变数组中。假设你有2节和2行的每个,然后给你的表视图控制器属性:

@property (nonatomic, retain) NSMutableArray *heightData; 

在.m文件:

- (NSMutableArray *)heightData 
{ 
    if(nil == heightData) 
    { 
     heightData = [[NSMutableArray array] retain]; 

     //various heights for your different rows in different sections: 
     NSMutableArray *sectionArray1 = [NSMutableArray arrayWithObjects:[NSNumber numberWithFloat:44],[NSNumber numberWithFloat:44]]; 
     NSMutableArray *sectionArray2 = [NSMutableArray arrayWithObjects:[NSNumber numberWithFloat:44],[NSNumber numberWithFloat:44]]; 

     [heightData addObject:sectionArray1]; 
     [heightData addObject:sectionArray2]; 
    } 

    return heightData; 
} 

然后,在你的表视图控制器.m文件,有一个协议的方法,我们必须充分利用,可以实现这样的:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSMutableArray *rowArray = [self.heightData objectAtIndex:indexPath.section]; 
    NSNumber *height = [rowArray objectAtIndex:indexPath.row]; 
    return [height floatValue]; 
} 

的最后一步:当你想改变一个高度为一排,让我们说这是在该行第1行第0行恩,你可以这样做:

NSMutableArray *rowArray = [self.heightData objectAtIndex:1]; 
[rowArray replaceObjectAtIndex:0 withObject:[NSNumber numberWithFloat:55]];\\a new data 
[self.tableView beginUpdates]; 
[self.tableView endUpdates]; 

则表视图的准备与流畅的动画效果来调整行,你可以明确地调整和重新布局的行内的看法,但我不建议,在table view'll自动为你做这个,如果你有一个自定义xib单元格和自动设置的设置正确

+0

谢谢!!那我需要什么!!!谢谢!!! – DaSilva

相关问题