当显示删除确认按钮时,UITableViewCell.showingDeleteConfirmation给出NO

时间:2014-02-23 14:29:15

标签: ios objective-c uitableview

我在表格视图单元格上滑动以显示删除确认按钮。但是一旦我抬起手指,即使按钮仍然存在,showingDeleteConfirmation也会给出NO。 (当按钮出现时,它确实给出了YES,我的意思是,在我抬起手指之前。)我错过了什么,或者这是iOS中真正的错误?

以下是我的测试代码。 (将其复制并粘贴到单视图项目的ViewController.m中并在模拟器中运行,并将 shift + 命令 + M 添加到触发NSLog。)

#import "ViewController.h"


@interface ViewController () <UITableViewDataSource, UITableViewDelegate>

@end


@implementation ViewController {
    UITableViewCell *_myCell;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, 320, 200)];
    myTableView.dataSource = self;
    myTableView.delegate = self;
    [self.view addSubview:myTableView];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    _myCell = [[UITableViewCell alloc] init];
    _myCell.contentView.backgroundColor = [UIColor greenColor];
    return _myCell;
}

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

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

    NSLog(@"_myCell.showingDeleteConfirmation = %@", _myCell.showingDeleteConfirmation ? @"YES" : @"NO");
}

@end

1 个答案:

答案 0 :(得分:3)

根据文件:

  

返回单元格当前是否显示删除确认按钮。 (只读)

...

  

当用户点击删除控件(单元格左侧的红色圆圈)时,单元格右侧显示“删除”按钮

首先,您需要制作网格可编辑

[myTableView setEditing:YES];

然后用户点击圈子删除(他们无法在此模式下向左滑动),并且瞧瞧:

_myCell.showingDeleteConfirmation = YES

虽然你可以按照你在问题中描述的那样使用它,但他们并不承诺。