我有一个分组的 UITableView。当用户选择一行时,我希望该单元格变窄。我通过以下方式成功实现了这一目标:
//DidSelectRowAtIndexPath
UITableViewCell *cell = [myTable cellForRowAtIndexPath:indexPath];
If (selected == YES) {
selected = NO;
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, 320, 35);
} else {
selected = YES;
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, 275, 35);
}
//end DidSelectRowAtIndexPath
现在这就像一个梦,但是当单元格被滚动出屏幕并再次返回时,它是全宽(320,顺便说一句,我并不是说视觉部分是 320 宽。我说的是实际的单元格框架)所以我在我的“CellForRowAtIndexPaths”方法中添加了“cell.frame = blahblahblah”行,它没有任何区别。为什么会这样?