快速更改tableview行高

时间:2012-02-16 12:00:15

标签: objective-c ios cocoa-touch

我有一个包含2行的表视图。最初相应地设置行高。我然后加载另一个视图控制器,显示一个列表,用户可以从中选择多个项目。这些项目将作为自定义图像绘制在tableview的第一行。当用户点击回来时,会显示用户选择的项目的选择,但我需要能够调整第0行的高度。

2 个答案:

答案 0 :(得分:1)

试试这个:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

答案 1 :(得分:0)

在TableListController头文件中声明:

@property (nonatomic, retain) NSIndexPath * expandedCellIndexPath;

然后在.m add

- (void)changeCellHeights:(NSIndexPath *)indexPath
{
    if (self.expandedCellIndexPath) {
        [self.yourTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject: self.expandedCellIndexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
    self.expandedCellIndexPath = indexPath;
    [self.yourTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject: self.expandedCellIndexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    DebugLog(@"");
    if (self.expandedCellIndexPath && indexPath.row == self.expandedCellIndexPath.row && indexPath.section == self.expandedCellIndexPath.section) {
        return 80;
    }
    return 56.0;
}

最后不要忘记将tableCell设置为Clip子视图(如果你使用的话,在你的Xib上设置)

现在您只需要调用changeCellHeights:方法