       rowsToInsertionFrames[row] = rowsToFinalFrames[row]!.remove(atIndices: indicesSortedByAscending)
     }
 
-    if animated
-    {
-      NSAnimationContext.runAnimationGroup({ (animationContext) in
-        animationContext.duration = 0.5
-
-        animationContext.timingFunction = nil
-
-        animationContext.allowsImplicitAnimation = false
-
+    if(!wasEmptyBeforeInsertionsHappened)
+    {
+      if animated
+      {
+        NSAnimationContext.runAnimationGroup({ (animationContext) in
+          animationContext.duration = 0.5
+
+          animationContext.timingFunction = nil
+
+          animationContext.allowsImplicitAnimation = false
+
+          for (row, frames) in rowsToFinalFrames
+          {
+            for i in 0..<self.rowToCells[row]!.count
+            {
+              let currentFrame = self.rowToCells[row]![i].frame
+
+              let animation = RowsView.animationForMovingCellApart(currentFrame, targetFrame: frames[i])
+
+              self.rowToCells[row]![i].animations = ["frame": animation]
+
+              self.rowToCells[row]![i].animator().frame = frames[i]
+            }
+          }
+        }, completionHandler: nil)
+      }
+      else
+      {
         for (row, frames) in rowsToFinalFrames
         {
           for i in 0..<self.rowToCells[row]!.count
           {
-            let currentFrame = self.rowToCells[row]![i].frame
-
-            let animation = RowsView.animationForMovingCellApart(currentFrame, targetFrame: frames[i])
-
-            self.rowToCells[row]![i].animations = ["frame": animation]
-
-            self.rowToCells[row]![i].animator().frame = frames[i]
+            self.rowToCells[row]![i].frame = frames[i]
           }
-        }
-      }, completionHandler: nil)
-    }
-    else
-    {
-      for (row, frames) in rowsToFinalFrames
-      {
-        for i in 0..<self.rowToCells[row]!.count
-        {
-          self.rowToCells[row]![i].frame = frames[i]
         }
       }
     }

      return dataSource!.itemForRowsView(rowsView: self, atCoordinate: coordinate)
    }

    let hadBottomRowBeforeInsertionsHappened = rowToItems[.Bottom]!.count > 0

    // Элементы могут быть вставлены либо в верхний, либо в нижний ряд.


          animationContext.allowsImplicitAnimation = false

          let animation = RowsView.animationForFading(fromAlpha: 0, toAlpha: 1, beginTime: CACurrentMediaTime() + (wasEmptyBeforeInsertionsHappened ? 0 : 0.5))

          cell.animations = ["alphaValue": animation]

