 
 	override func viewDidLayoutSubviews() {
 		super.viewDidLayoutSubviews()
-		scrollView.frame = CGRect(origin: .zero, size: view.frame.size)
+		let frame = HorizontalAgnosticRect.init(CGRect(origin: .zero, size: view.frame.size))
+		scrollView.frame = frame.rect
 		for current in containerViews {
 			current.frame = CGRect(origin: current.frame.origin, size: view.frame.size)
 		}
+		self.queue.suspended = frame.size.relevant == 0
 	}
 
 	override func viewDidAppear(animated: Bool) {


	deinit {
		scrollView.removeObserver(self, forKeyPath: "bounds")
	}
}


		}
	}

	private let queue: NSOperationQueue = {
		let q = NSOperationQueue()
		q.underlyingQueue = dispatch_queue_create(nil, DISPATCH_QUEUE_SERIAL)
		return q
	}()
	private var deiniting = false

	func gotoPage(page: Int, animated: Bool) {
		assert(scrollView.superview! == view)
		queue.addOperationWithBlock { [weak self] in
			guard let me = self else {
				return
			}
			if me.deiniting {
				return
			}
			dispatch_async(dispatch_get_main_queue(), {
				me.setContentSize(me.pageCount)
				me.currentPage = page
				me.scrollView.scrollRectToVisible(me.frameForPage(page), animated: animated)
				me.attachIncomingViews()
				me.delegateViewControllerPresentationMessages()
			})
		}
	}

