 	public override func viewDidLayoutSubviewsWithAnimation(animation: Animation?) {
 		super.viewDidLayoutSubviewsWithAnimation(animation)
 
-		layoutChildrenForcingLayoutUpdate(true)
+		let bounds = view.bounds
+		guard bounds.size != lastLayoutedSize else {
+			return
+		}
+
+		lastLayoutedSize = bounds.size
+
+		layoutChildrenForcingLayoutUpdate(false)
 		updatePrimaryViewController()
 	}
 

		ignoresScrollViewDidScroll += 1
		defer { ignoresScrollViewDidScroll -= 1 }

		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()



		let visibleIndexes: Range<Int>

		if viewControllers.isEmpty || bounds.isEmpty {
			visibleIndexes = 0 ..< 0
		}
		else {
			let floatingIndex = contentOffset.left / bounds.width
			visibleIndexes = Int(floor(floatingIndex)).clamp(min: 0, max: viewControllers.count - 1) ... Int(ceil(floatingIndex)).clamp(min: 0, max: viewControllers.count - 1)
		}

