我一直在寻找,找不到解决这个问题的方法。我当前的代码基于Reload section 而没有重新加载 section header。
当用户按下单元格时,我正在尝试增加一个 uitableview 单元格。我有一个 UITableViewCell 子类,其 UILabel 最初仅限于两行文本。当用户按下 UILabel 时,我将 UILabel 中的 numberOfLines 属性设置为 0,以便它根据需要扩展到尽可能多的行。
这是我在 tableView:didSelectRowAtIndexPath 中的代码:
if (((NSNumber *)expandedCells[indexPath.section]).boolValue)
{
labelExpandingCell.cellLabel.numberOfLines = 10;
} else
{
labelExpandingCell.cellLabel.numberOfLines = 3;
}
[UIView setAnimationsEnabled:NO];
[self.tableView beginUpdates];
[self.tableView setNeedsDisplay];
[self.tableView endUpdates];
[UIView setAnimationsEnabled:YES];
有时这可以正常工作,通常是当 UITableView 的 contentOffset.y == 0 时。通常,当我执行此代码时,tableview 会向后跳转 100 像素左右。这是运行此代码之前和之后的示例日志。
2016-03-25 14:57:08.549 TableViewTest[485:129926] 更新前的内容偏移量:153.500000 2016-03-25 14:57:08.568 TableViewTest[485:129926] 更新后的内容偏移量:136.500000
当我展开当前可见的单元格时,为什么自动布局会导致我的表格视图向后跳转?