 			}
 
 			newContentOffset = newContentOffset.clamp(min: scrollView.minimumContentOffset, max: scrollView.maximumContentOffset)
+
 			if newContentOffset != contentOffset {
 				scrollView.contentOffset = newContentOffset
 				contentOffset = newContentOffset
 			}
+
+			layoutsExistingChildren = true
+		}
+		else {
+			contentOffset = scrollView.contentOffset
+			layoutsExistingChildren = false
 		}
 
 		let visibleIndexes: Range<Int>

			}

			if isViewLoaded() {
				layoutChildContainer()
				layoutChildrenForcingLayoutUpdate(true)
				updatePrimaryViewController()
			}


		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 {
