如何在编辑时在UITableViewCell中缩进自定义uilabel

时间:2011-08-17 22:05:26

标签: iphone objective-c ios xcode

我有一个自定义的uitableviewcell,当我打开它时我想缩进:

[self.boatsDisplay setEditing:YES animated:YES];

有人能给我一些提示或指导吗?

由于

2 个答案:

答案 0 :(得分:4)

您需要继承UITableViewCell并覆盖-layoutSubviews。当单元格的编辑位设置为YES时,将自动调用-layoutSubviews。在-layoutSubviews内所做的任何更改都会自动生成动画。

考虑这个例子

- (void)layoutSubviews
{
    [super layoutSubviews];
    CGFloat xPosition = 20.0f; // Default text position

    if (self.editing)
        xPosition = 40.0f;

    CGRect textLabelFrame = self.textLabel.frame;
    textLabelFrame.origin.x = xPosition;
    self.textLabel.frame = textLabelFrame;
}

答案 1 :(得分:2)

UITableViewDelegate中,您可以使用tableView:indentationLevelForRowAtIndexPath:方法:

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
  if(tableView.editing == YES){
    return 1; // or higher integer
  } else {
    return 0;
  }
}

如果您只想检查自定义单元格,可以在if条件中添加&&[[tableView cellForRowAtIndexPath:indexPath] isKindOfClass:yourTableViewCell]