2016-09-05 3 views
0

Я перезагрузил таблицу, когда получил сообщение.Анимация из таблицы ушла

здесь код:

[self.tblChatting beginUpdates]; 
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:app.Glb.arrayChat.count-1 inSection:0]; 
[self.tblChatting insertRowsAtIndexPaths:[indexPaths copy] withRowAnimation:UITableViewRowAnimationBottom]; 
[self.tblChatting endUpdates]; 

[self.tblChatting reloadData]; 
[self.tblChatting scrollToRowAtIndexPath:newIndexPath 
         atScrollPosition:UITableViewScrollPositionBottom 
           animated:YES]; 

и вот мой стол объект подробный вид, когда анимация не там и моя строка не добавляется в таблицу:

<UITableView: 0x18bece00; frame = (0 55; 250 351); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = 
<NSArray: 0x17ec5fb0>; layer = <CALayer: 0x17ec5150>; contentOffset: {0, 6541}; contentSize: {250, 6892.0312}> 

и вот таблица объектов просмотр когда строка добавляется успешно и animatoin в объекте:

<UITableView: 0x14949e00; frame = (0 55; 320 351); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x14665210>; animations = { position=<CASpringAnimation: 0x1a75d9f0>; bounds.origin=<CASpringAnimation: 0x1a4e9d20>; bounds.size=<CASpringAnimation: 0x1ac4b980>; 
bounds.origin-2=<CASpringAnimation: 0x1a1fbb40>; bounds.size-2=<CASpringAnimation: 0x1a1b02d0>; }; 
layer = <CALayer: 0x145f1300>; contentOffset: {0, 6593}; contentSize: {320, 6944.1309}> 

, и это случается иногда только. Почему это происходит?

+0

удалить, таблица перезагрузки. –

ответ

0

Удалить строку

[self.tblChatting reloadData]; 

insertRowsAtIndexPaths перегруппировывается вид таблицы неявно.

Удалить также линии begin/endUpdates. Они не влияют ни на одну операцию вставки.

0

Бывало вставить строку в виде таблицы, а как вы загрузите таблицу:

Попробуйте это:

NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:app.Glb.arrayChat.count-1 inSection:0]; 

[self.tblChatting insertRowsAtIndexPaths:@[indexPaths] withRowAnimation:UITableViewRowAnimationBottom]; 

[self.tblChatting scrollToRowAtIndexPath:newIndexPath 
         atScrollPosition:UITableViewScrollPositionBottom 
           animated:YES]; 
Смежные вопросы