@@ -438,25 +438,35 @@ export class CollectionView extends CollectionViewBase {
438438 }
439439 case ChangeType . Splice : {
440440 view . performBatchUpdatesCompletion ( ( ) => {
441- if ( event . addedCount > 0 ) {
442- const indexes = NSMutableArray . alloc < NSIndexPath > ( ) . init ( ) ;
443- for ( let index = 0 ; index < event . addedCount ; index ++ ) {
444- indexes . addObject ( NSIndexPath . indexPathForItemInSection ( event . index + index , 0 ) ) ;
445- }
446- view . insertItemsAtIndexPaths ( indexes ) ;
447- }
448- if ( event . removed && event . removed . length > 0 ) {
441+ const added = event . addedCount ;
442+ const removed = ( event . removed && event . removed . length ) || 0 ;
443+ if ( added > 0 && added === removed ) {
449444 const indexes = NSMutableArray . new < NSIndexPath > ( ) ;
450- for ( let index = 0 ; index < event . removed . length ; index ++ ) {
451- indexes . addObject ( NSIndexPath . indexPathForItemInSection ( event . index + index , 0 ) ) ;
445+ for ( let index = 0 ; index < added ; index ++ ) {
446+ indexes . addObject ( NSIndexPath . indexPathForRowInSection ( event . index + index , 0 ) ) ;
447+ }
448+ view . reloadItemsAtIndexPaths ( indexes ) ;
449+ } else {
450+ if ( event . addedCount > 0 ) {
451+ const indexes = NSMutableArray . alloc < NSIndexPath > ( ) . init ( ) ;
452+ for ( let index = 0 ; index < event . addedCount ; index ++ ) {
453+ indexes . addObject ( NSIndexPath . indexPathForItemInSection ( event . index + index , 0 ) ) ;
454+ }
455+ view . insertItemsAtIndexPaths ( indexes ) ;
452456 }
453- this . unbindUnusedCells ( event . removed ) ;
454- if ( Trace . isEnabled ( ) ) {
455- CLog ( CLogTypes . info , 'deleteItemsAtIndexPaths' , indexes . count ) ;
457+ if ( event . removed && event . removed . length > 0 ) {
458+ const indexes = NSMutableArray . new < NSIndexPath > ( ) ;
459+ for ( let index = 0 ; index < event . removed . length ; index ++ ) {
460+ indexes . addObject ( NSIndexPath . indexPathForItemInSection ( event . index + index , 0 ) ) ;
461+ }
462+ this . unbindUnusedCells ( event . removed ) ;
463+ if ( Trace . isEnabled ( ) ) {
464+ CLog ( CLogTypes . info , 'deleteItemsAtIndexPaths' , indexes . count ) ;
465+ }
466+ view . performBatchUpdatesCompletion ( ( ) => {
467+ view . deleteItemsAtIndexPaths ( indexes ) ;
468+ } , null ) ;
456469 }
457- view . performBatchUpdatesCompletion ( ( ) => {
458- view . deleteItemsAtIndexPaths ( indexes ) ;
459- } , null ) ;
460470 }
461471 } , null ) ;
462472 return ;
@@ -712,7 +722,7 @@ export class CollectionView extends CollectionViewBase {
712722 cellView [ 'iosIgnoreSafeArea' ] = true ;
713723 View . layoutChild ( this , cellView , 0 , 0 , cellSize [ 0 ] , cellSize [ 1 ] ) ;
714724 if ( Trace . isEnabled ( ) ) {
715- CLog ( CLogTypes . log , 'layoutCell' , index , cellView , cellView . getMeasuredWidth ( ) , cellView . getMeasuredHeight ( ) ) ;
725+ CLog ( CLogTypes . log , 'layoutCell' , index , cellView . getMeasuredWidth ( ) , cellView . getMeasuredHeight ( ) ) ;
716726 }
717727 }
718728
0 commit comments