是的你可以.您需要一个保留最后一个选定行的变量.例如:
@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的-1值0.
| 归档时间: |
|
| 查看次数: |
1967 次 |
| 最近记录: |