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

时间:2011-06-19 20:55:05

标签: iphone ios uitableview

我有一个关于编辑UITableView的问题。我想知道如何在点击删除控件并显示删除按钮时隐藏子视图。我已经想出了如何在点击删除按钮时隐藏子视图,但为时已晚。我使用以下代码来实现这一目标:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
exerciseDate = (UILabel *)[cell viewWithTag:8989];
exerciseDate.hidden = YES;

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

提前谢谢!

Screen Shot 1 Screen Shot 2

3 个答案:

答案 0 :(得分:6)

你的问题的答案是肯定的,然后就是我认为你真的想做但却不知道的。

您要求的内容:子类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;
}

我建议您做的是以下内容: 如果您在InterfaceBuilder(或Xcode4的版本)中创建了单元格,请更改右侧调整大小行为的label。您希望它锚定在右侧(默认为左侧)。然后当单元格resizes内容符合默认按钮时,它会将"Today"标签推到左侧。

答案 1 :(得分:0)

将这些标签设置为

等属性
@property (nonatomic, retain) UILabel *subViewLabel;

然后synthesize他们。

如果要隐藏它们,请按照您所遵循的相同步骤操作,然后使用

self.subViewLabel.hidden = YES;

答案 2 :(得分:0)

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

相关问题