iOS - 用于UITutViewCell中UIButton的长按手势识别器

时间:2014-01-02 07:12:36

标签: ios objective-c uitableview uigesturerecognizer

我有一个UITableViewCell,其中有UIButton个用来递减计数器。长按其中一个按钮,我想将计数器设置为0。

在Interface Builder中执行此操作,我将Long Press Gesture Recognizer拖到我的button上,并将选择器连接到IBAction中指定的UITableViewCell.m

这就是我所做的一切,但是当我运行应用程序时,它会出现以下错误。

'NSInternalInconsistencyException', 
reason: 'invalid nib registered for identifier (editQuotaCell) 
- nib must contain exactly one top level object which must be a UITableViewCell instance'

我错过了任何步骤吗?

1 个答案:

答案 0 :(得分:-1)

只需在编码中创建按钮添加手势和选择器。它会工作。检查以下代码

 -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
     if(cell == nil)
     {
         UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"];
         cell.backgroundColor = [UIColor clearColor];
         cell.selectionStyle = UITableViewCellSelectionStyleNone;

         UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
         [btn addTarget:self action:@selector(select_Action:) forControlEvents:UIControlEventTouchUpInside];
         [btn setTag:Selection_Tag];
         [btn setBackgroundImage:[UIImage imageNamed:@"Demo03.png"] forState:UIControlStateNormal];
         [btn setFrame:CGRectMake(0,0,tableView.frame.size.width,tableView.rowHeight)];
         [cell.contentView btn];

        //Add Your gestures here
     }


     return cell;
 }