2013-12-10 2 views
0

У меня есть табличный вид и ячейка в нем: D с выбранным аксессуаром раскрытия. Я создал все элементы ui с раскадрой. (не ставил точку зрения в содержании клетки) Я использую SWTableViewCell реализовать только красть к удалить, но все, кажется, отлично работает, за исключением, когда я поставил точку останова на методеПроведите по удалению

#pragma mark -SWTableViewDelegate- 

-(void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index 
{ 

    NSIndexPath *path=[self.table indexPathForCell:cell]; 
    [anArray removeObjectAtIndex:path.row]; 
    [self.table deleteRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationRight]; 
} 

, и это поможет вам понять, что я просто сделал здесь

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    SWTableViewCell *cell=(SWTableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
    if (!cell) 
    { 

     NSMutableArray *rightUtilityButtons = [NSMutableArray new]; 
     [rightUtilityButtons sw_addUtilityButtonWithColor:[UIColor colorWithRed:1.0f 
                     green:0.231f 
                     blue:0.188 
                     alpha:1.0f] 
    title:@"Delete"]; 

     cell = [[SWTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell" containingTableView:_table leftUtilityButtons:nil rightUtilityButtons:rightUtilityButtons]; 
    } 

    NSMutableDictionary *deDict=[[NSMutableDictionary alloc]initWithDictionary:[anArray objectAtIndex:indexPath.row]]; 

    cell.textLabel.text= [deDict objectForKey:@"Name"]; 

    return cell; 
} 

Тем не менее, я не получаю сообщение об ошибке, потому что, когда я пытаюсь ударить на тренажере, он просто не работает ..

ответ

0

Нет необходимости использовать SWTableViewCell просто переопределить followi нг встроенные методы UITableView делегата для поддержки условного редактирования & салфетки для удаления

для условного редактирования - Дополнительно -

//Override this method only if you are going to be returning NO for some items. 
//By default, all items are editable. 
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return YES if you want the specified item to be editable. 
    return YES; 
} 

для салфетки, чтобы удалить

// Override to support editing the table view. 
// for swipe to delete 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     //add code here for when you hit delete 
    }  
} 
+2

Они не являются методами 'UITableView', и вы не переопределяете их. Это методы делегата. – Sulthan

+0

хорошо я делаю commitEdittingStyle и titleForDeleteConfirmationButtonForRowAtIndexPath прямо сейчас, чтобы увидеть, что работает – user3079947

+0

, тогда все в порядке, не нужно беспокоиться об этом, просто проведите пальцем справа налево, и вы увидите кнопку удаления, и она выполняет действие в соответствии с commitEdittingStyle, когда оно нажимает –

Смежные вопросы