         super.layoutSubviews()
         
         if pagingContents.count > 0 {
-            if beforeSize != contentSize || firstScrollPosition != nil || needsLayout {
+            if beforeSize != contentSize || needsReload || needsLayout {
                 contentSize = CGSize(width: floor(contentSize.width), height: floor(contentSize.height))
                 let contentPosition: Position
-                if let position = firstScrollPosition {
+                if let position = reloadScrollPosition {
                     contentPosition = position
                 } else {
                     if lastLeftPagingEdge {

                if let offsetX = contentOffsetXAtPosition(contentPosition) {
                    setContentOffset(CGPoint(x: offsetX, y: contentOffset.y), animated: false)
                }
                firstScrollPosition = nil
            } else {
                infiniteIfNeeded()
            }

// MARK: - Layout and Display
extension PagingView {
    public override func layoutSubviews() {
        var reloadScrollPosition: Position?
        
        if needsReload || needsLayout {
            let horizontal = -CGFloat(pagingInset * 2)
            contentInset = UIEdgeInsets(top: 0, left: horizontal, bottom: 0, right: horizontal)
