我有一个简单的扩展表格视图单元格,通过更改tableView:heightForRowAtIndexPath:
中返回的高度来增长:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat height = [tableView rowHeight];
if (indexPath == self.descriptionCellIndexPath) {
if (self.descriptionCellExpanded) {
height = self.descriptionCellExpandedHeight;
}
height += UA_DEFAULT_PADDING; // 10 pixels
}
return height;
}
我设置了高度:
- (void)expandDescriptionRowWithIndexPath:(NSIndexPath *)indexPath {
if (!self.descriptionCellExpanded) {
UAAudioExpandingDescriptionTableViewCell *cell = (UAAudioExpandingDescriptionTableViewCell *)[self.tableView cellForRowAtIndexPath:indexPath];
CGFloat height = [cell expandedHeight];
self.descriptionCellExpanded = YES;
self.descriptionCellExpandedHeight = height;
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
折叠和扩展单元格的高度都是正确的,文本在正确的位置正确呈现,但我发现文本标签在动画上跳转的问题。这是打开慢动作动画的问题的GIF:
正如您所看到的,单元格在动画之前和之后正确布局,而不是在此期间。文字标签是一个简单的UITableViewCellStyleDefault
,除separatorInset
以外的框架或位置没有自定义。
如何防止textLabel
跳过动画?