我有一个关于编辑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)。我是否需要为删除控件设置监听器?如果是这样,我该怎么做?
提前谢谢!
答案 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。