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

时间:2011-05-23 22:59:59

标签: ios iphone uitableview resize

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

如果我使用标准cell.textLabel,标签会调整大小并保持在单元格的边框内。关于如何使用自定义UILabels执行此操作的想法?

1 个答案:

答案 0 :(得分:1)

您需要实现并使用这两个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;
}