 
 
 	private func layoutChildContainer() {
+		++ignoresScrollViewDidScroll
+		defer { --ignoresScrollViewDidScroll }
+
 		let viewSize = view.bounds.size
 		let contentSize = CGSize(width: CGFloat(viewControllers.count) * viewSize.width, height: viewSize.height)
 
+		let contentOffset = scrollView.contentOffset
+		scrollView.frame = CGRect(size: viewSize)
 		childContainer.frame = CGRect(size: contentSize)
 		scrollView.contentSize = contentSize
+		scrollView.contentOffset = contentOffset
 	}
 
 


		for index in visibleIndexes {
			if let childView = childViewForIndex(index) {
				if updatesLayout {
					layoutChildView(childView)
				}
			}


		let viewBounds = view.bounds
		let viewControllers = self.viewControllers
		var contentOffset: CGPoint
		let layoutsExistingChildren: Bool

		let previousViewSize = self.lastLayoutedViewSize
		if forcesLayoutUpdate || viewBounds.size != previousViewSize {
			self.lastLayoutedViewSize = viewBounds.size

			layoutChildContainer()

			contentOffset = scrollView.contentOffset
			var newContentOffset = contentOffset

			if viewControllers.count > 1 {
