         underlineView.frame.size.width = adjustCellWidth
     }
 
-    public func animateUnderlineView(index: Int, completion: ((Bool) -> Swift.Void)? = nil) {
+    fileprivate func animateUnderlineView(index: Int, animated: Bool, completion: ((Bool) -> Swift.Void)? = nil) {
 
         update(index)
 
-        UIView.animate(withDuration: 0.3, animations: { 
-            guard let target = self.currentItem else { return }
-
-            self.underlineView.frame.origin.x = target.frame.origin.x + self.options.underlineView.margin
-
-            if self.options.needsAdjustItemViewWidth {
-                let cellWidth = self.itemViews[index].frame.width
-                self.underlineView.frame.size.width = cellWidth - self.options.underlineView.margin * 2
-            }
-
-            self.focus(on: target)
-        }, completion: completion)
-    }
-
-    public func moveUnderlineView(index: Int, ratio: CGFloat, direction: Direction) {
+        if animated {
+            UIView.animate(withDuration: 0.3, animations: {
+                self.updateUnderlineViewPosition(index: index)
+            }, completion: completion)
+        } else {
+            updateUnderlineViewPosition(index: index)
+        }
+    }
+
+    func moveUnderlineView(index: Int, ratio: CGFloat, direction: Direction) {
 
         update(index)
 

            let index: Int = itemViews.index(of: itemView),
            currentIndex != index else { return }
        tabViewDelegate?.tabView(self, willSelectTabAt: index)
        moveTabItem(index: index)
        update(index)
        tabViewDelegate?.tabView(self, didSelectTabAt: index)
    }

    private func moveTabItem(index: Int) {

        switch options.addition {
        case .underline:
            animateUnderlineView(index: index, completion: nil)
        case .none:
            update(index)
        }


    /// Reloads all `TabView` item views with the dataSource and refreshes the display.
    public func reloadData(options: SwipeMenuViewOptions.TabView? = nil,
                           default defaultIndex: Int? = nil,
                           animated: Bool = true) {

        if let options = options {
            self.options = options
