                              lowerButton: lowerButton,
                              upperButton: upperButton)
         
-        self.scrollPositionToVisible(position,
-                                     direction: direction)
+        self.scrollIndicatorPositionToVisible()
     }
     
     //

            self.updateConstraints(self.horizontalMarginConstraints,
                                   withValue: interItemSpacing)
        }
    }
    
    //

        self.indicatorLeftMargin?.constant = interpolatedXOrigin
    }
    
    private func scrollIndicatorPositionToVisible() {
        
        let indicatorXOffset = self.indicatorLeftMargin?.constant ?? 0.0
        let indicatorWidthOffset = (self.bounds.size.width - (self.indicatorWidth?.constant ?? 0)) / 2.0
        let maxOffset = self.scrollView.contentSize.width - self.bounds.size.width
        
        guard indicatorWidthOffset > 0.0 else {
            return
        }
        
        let offset = max(0.0, min(maxOffset, indicatorXOffset - indicatorWidthOffset))
        
        self.scrollView.contentOffset = CGPoint(x: offset, y: 0.0)
    }
}
