iOS编辑tableview隐藏单元格中的子视图

我有一个关于编辑UITableView的问题。 我想知道如何隐藏一个子视图,当删除控件被点击,删除button出现。 我已经想出了如何在点击删除button时隐藏子视图,但是为时已晚。 我用下面的代码来实现这个function:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; exerciseDate = (UILabel *)[cell viewWithTag:8989]; exerciseDate.hidden = YES; 

正如您在下面的屏幕截图中看到的那样,文本“今天”和“昨天”是每个单元格的子视图。 当点击删除控件(左边的红色圆形button)并且出现删除button(屏幕截图2)时,我想要隐藏此子视图。 我是否需要为删除控件设置侦听器? 如果是这样,我该怎么做?

先谢谢你!

屏幕截图1屏幕截图2

有你的问题的答案,然后是我认为你真的想做的事情,但不知道。

你所要求的:子类UITableViewCell并使用新的。 在课堂上实现这一点:

 - (void) setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; UILabel *label = (UILabel *)[self viewWithTag:3]; // whatever you tag the label as label.hidden = editing; } 

我build议你做的事情如下:如果你在InterfaceBuilder (或者Xcode4的版本)中创build了这个单元格,改变右边的调整行为label 。 你希望它锚定在右边(默认是左边)。 然后,当单元格resizes内容以适应那里的默认button时,它会将"Today"标签推到左边。

将这些标签设置为属性

 @property (nonatomic, retain) UILabel *subViewLabel; 

然后synthesize它们。

当你想隐藏他们,按照你所遵循的相同的程序,并使用

 self.subViewLabel.hidden = YES; 

你在使用自定义单元格吗? 你可以通过使用UITableViewCellStyleValue1(控制自己的问题,并自动将标签移动到左边),然后通过以编程方式将UILabel添加到cellForRowAtIndexPath中的每个单元格来创build相同的效果。 如果您使用的是UITableViewCellStyleSubtitle,请尝试使用UITableViewCellStyleValue1并在cell.textLabel属性的底部添加UIlabel。