我有一个分组UITableView
,用户可以进入编辑模式并从表中删除行。表格的每个单元格都有两个UILabels
。当表格进入编辑模式时,自定义UILabels
向右推,超出单元格的右边界。
如果我使用标准cell.textLabel
,标签会调整大小并保持在单元格的边框内。关于如何使用自定义UILabels
执行此操作的想法?
答案 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;
}