2014-11-26 1 views
1

Салфетка для удаления ячейки таблицы работает неправильно. Мне нужно быстро и много раз проскользнуть, чтобы он работал. Следующий код работает в ios 7. Может ли кто-нибудь сказать мне, что мне нужно сделать, чтобы заставить его работать плавно в ios 8?Прокрутка влево, чтобы удалить ячейку, не работает должным образом в ios 8, но работает в ios 7

@implementation SimpleTableCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 

-(void)willTransitionToState:(UITableViewCellStateMask)state{ 

    [super willTransitionToState:state]; 


    if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) { 
     for (UIView *subview in self.subviews) { 
      if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) { 
       UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
       [deleteBtn setImage:[UIImage imageNamed:@"deleteButton.png"]]; 
       [[subview.subviews objectAtIndex:0] addSubview:deleteBtn]; 
      } 
     } 
    } 
} 
@end 

ответ

0

Это должно быть очень простым (и работает хорошо для меня, в прошивке 8 ...)

Вам просто нужно, чтобы убедиться, что ваш UITableView имеет это:

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // YES - we do want to enable "swipe to delete" on this row. 
    return YES; 
} 

... и это ...

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Add some code to delete your row... 
} 

У вас есть эти две части в коде?

3

У меня была такая же проблема. Через несколько часов я наконец понял, что проблема связана с моим контроллером навигации, содержащим распознаватель жестов.

Функция редактирования собственных комментариев использует Swipe GestureRecognizer, поэтому, если у вас есть распознаватель жестов, не забудьте добавить эту строку, чтобы разрешить одновременное распознавание жестов!

- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer { return YES; } 

Я действительно надеюсь, что это поможет, потому что это сводит меня с ума ...

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