我们可以在UITableView中更改当前行的高度吗?

nit*_*arg 4 uitableview ios

一个非常简单的问题......

我们可以在UItableView中更改当前行(单击的行)的高度吗?

注意:我不希望任何影响剩余行的大小.

gra*_*ver 7

是的你可以.您需要一个保留最后一个选定行的变量.例如:

@property (nonatomic, assign) NSInteger selectedRow;
Run Code Online (Sandbox Code Playgroud)

...然后实施该方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(indexPath.row == self.selectedRow) {
        return 100.;
    }

    return 44.;
}
Run Code Online (Sandbox Code Playgroud)

然后,更新方法:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    if(self.selectedRow == indexPath.row)
        self.selectedRow = -1;
    else
        self.selectedRow = indexPath.row;

    //The magic that will call height for row and animate the change in the height
    [tableView beginUpdates];
    [tableView endUpdates];
}
Run Code Online (Sandbox Code Playgroud)

注意:默认情况下,在开头初始化您self.selectedRow-10.