在编辑模式下使用自定义UILabels分组UITableView

我有一个分组的UITableView用户可以进入编辑模式,并从表中删除行。 表中的每个单元格都有两个UILabels 。 当表格进入编辑模式时,自定义UILabels向右推并超出单元格的右边界。

如果我使用标准的cell.textLabel ,标签将resize并保留在单元格的边框内。 有关如何使用自定义UILabels做到这一点的想法?

你需要实现和使用这两个UITableViewDelegate方法:

 – tableView:willBeginEditingRowAtIndexPath: – tableView:didEndEditingRowAtIndexPath: 

在willBegin中,将您的UILabel框架设置为具有较小宽度,并在didEndEditing上将宽度设置为正常大小。

例如,如果你的UILabel被挤出50个像素的边界,在你的方法你做:

 - (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *thisCell = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath]; CGRect newFrame = thisCell.someUILabel.frame; newFrame.size.width -= 50; thisCell.someUILabel.frame = newFrame; } - (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *thisCell = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath]; CGRect newFrame = thisCell.someUILabel.frame; newFrame.size.width += 50; thisCell.someUILabel.frame = newFrame; }