 
 
 	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
 	}
 
 

			}

			newContentOffset = newContentOffset.clamp(min: scrollView.minimumContentOffset, max: scrollView.maximumContentOffset)
			if newContentOffset != contentOffset {
				scrollView.contentOffset = newContentOffset
				contentOffset = newContentOffset
			}
		}

		let visibleIndexes: Range<Int>


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