在编辑模式下使用自定义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; }