diff --git a/.DS_Store b/.DS_Store index 17cad49..5008ddf 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/IZPageController.podspec b/IZPageController.podspec index 31f3aab..acf41aa 100644 --- a/IZPageController.podspec +++ b/IZPageController.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'IZPageController' - s.version = '0.1.0' + s.version = '0.2.0' s.summary = 'Used to create easily scrolled views that snap to place.' s.description = <<-DESC diff --git a/IZPageController/Classes/IZPageController.swift b/IZPageController/Classes/IZPageController.swift index ea00e9c..3b8e603 100644 --- a/IZPageController/Classes/IZPageController.swift +++ b/IZPageController/Classes/IZPageController.swift @@ -132,7 +132,7 @@ open class IZPageController: UIViewController, UIScrollViewDelegate { removeViewController(at: it.offset) } viewControllers = [] - for _ in 0..<(delegate?.numberOfViewControllers() ?? 0) { + for index in 0..<(delegate?.numberOfViewControllers() ?? 0) { viewControllers.append(nil) } updateViewControllers(area: .preload) @@ -202,6 +202,25 @@ open class IZPageController: UIViewController, UIScrollViewDelegate { return scrollView.frame.size } + open func scrollToViewController(at index : Int, animated : Bool) { + + let frame = frameForViewController(at: index) + + if animated { + UIView.animate(withDuration: 0, animations: { + self.scrollView.scrollRectToVisible(frame, animated: true) + + }, completion: { (success) in + if success { + self.updatePageIndex() + } + }) + } else { + scrollView.scrollRectToVisible(frame, animated: false) + updatePageIndex() + } + } + open func updatePageIndex() { if let pageIndex = pageIndex, previouslyReportedPageIndex != pageIndex { previouslyReportedPageIndex = pageIndex @@ -219,4 +238,4 @@ open class IZPageController: UIViewController, UIScrollViewDelegate { updatePageIndex() updateViewControllers(area: .preload) } -} +} \ No newline at end of file