                 self.setNeedsLayout()
                 self.layoutIfNeeded()
                 completion?()
-        })
+            })
+        } else {
+            self.bounds = bounds
+            self.scrolling -= 1
+            completion?()
+        }
     }
     
     public func scrollToCenter(index: Int, animated: Bool, animation: (Void -> Void)?, completion: (Void -> Void)?) {

        
        self.scrolling += 1
        self.setContentOffset(self.contentOffset, animated: false)
        UIView.animateKeyframesWithDuration(
            animated ? 0.25 : 0,
            delay: 0,
            options: .BeginFromCurrentState,
            animations: { () -> Void in
                self.bounds = bounds
                animation?()
            }, completion: { finished in

            }
            
            self.setNeedsLayout()
            self.layoutIfNeeded()
        }
    }
    
    public func reloadView(position: XPosition, item: InfiniteItem, edge: CGFloat) {
        guard self.infiniteDataSource.totalItemCount() > 0 else { return }
      
        let convertIndex = self.convertIndex(item.index)
        let bounds = self.bounds
        let thickness = CGFloat(ceilf(Float(self.infiniteDataSource.thicknessForIndex(convertIndex))))
        let view = (self.infiniteDataSource.viewForIndex(convertIndex))
        
        switch position {
        case .Start:
