我有UITableViewCell
基于文字内容的动态高度。在tableview:heightForRowAtIndexPath:
中计算高度。这很有效。
当单元格使用editingStyle UITableViewCellEditingStyleDelete
进入编辑模式时,它会稍微缩小单元格并将某些内容推出,导致rowHeight更改。再次这很好用,因为将tableview切换为编辑会导致表重新布局,因此会重新计算rowHeight。
单击红色按钮或滑动单元格时,单元格右侧会出现“删除”按钮。但是,这不会触发表的重新布局,只会触发单元本身。这里的问题是,如果内容越过底部边缘,则单元格不会调整大小。
当删除按钮出现时,有没有办法触发表格的重新布局?
答案 0 :(得分:1)
一般来说,UITableViewCell
的高度只能通过tableview:heightForRowAtIndexPath:
设置,后一种方法只能在tableView:cellForRowAtIndexPath:
之前调用一次(每个部分每行),所以你必须{ {1}}如果想调整UITableViewCell高度。
也许你可以在这些委托方法中做点什么
[tableview reloadData]
对于您的问题,您可以在自定义UITableViewCell中重置// The willBegin/didEnd methods are called whenever the 'editing' property is automatically changed by the table (allowing insert/delete/move). This is done by a swipe activating a single row
- (void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView*)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath;
处文本控件的属性。
- (void)layoutSubviews
希望这些能帮到你。