Skip to content

Commit

Permalink
using custom paging enable behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
superk589 committed Feb 22, 2017
1 parent a07a085 commit 73dbf14
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 12 deletions.
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@ let centerController = UIViewController()
let leftController = UIViewController()
let rightController = UIViewController()

// ZKDrawerController does not support for having two sides at the same time

// only have right or left side
let drawerController = ZKDrawerController.init(main: centerController, right: rightController)
let drawerController = ZKDrawerController.init(main: centerController, left: leftController)
let drawerController = ZKDrawerController.init(main: centerController, right: rightController, left: leftController)

// have none of the two sides, and then add dynamically
let drawerController = ZKDrawerController.init(main: centerController)
Expand Down
2 changes: 1 addition & 1 deletion ZKDrawerController.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "ZKDrawerController"
s.version = "0.0.9"
s.version = "0.1.0"
s.summary = "An iOS drawer controller in swift."
s.description = <<-DESC
A light-weighted iOS drawer controller in swift.
Expand Down
4 changes: 3 additions & 1 deletion ZKDrawerController/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
let left = UIViewController()
left.view.backgroundColor = UIColor.clear

let drawer = ZKDrawerController.init(main: nav, left: left)
let drawer = ZKDrawerController.init(main: nav, right: right, left: left)
drawer.gestureRecognizerWidth = 300
drawer.defaultRightWidth = 700
drawer.mainScale = 0.8
drawer.containerView.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
drawer.drawerStyle = .plain
Expand Down
27 changes: 25 additions & 2 deletions ZKDrawerController/Core/ZKDrawerController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ open class ZKDrawerController: UIViewController, ZKDrawerCoverViewDelegate {
/// 右侧抽屉视图控制器
open var rightVC: UIViewController? {
didSet {
removeOldVC(vc: leftVC)
removeOldVC(vc: oldValue)
setupRightVC(vc: rightVC)
}
Expand All @@ -102,7 +101,6 @@ open class ZKDrawerController: UIViewController, ZKDrawerCoverViewDelegate {
/// 左侧抽屉视图控制器
open var leftVC: UIViewController? {
didSet {
removeOldVC(vc: rightVC)
removeOldVC(vc: oldValue)
setupLeftVC(vc: leftVC)
}
Expand Down Expand Up @@ -309,6 +307,31 @@ open class ZKDrawerController: UIViewController, ZKDrawerCoverViewDelegate {

extension ZKDrawerController: UIScrollViewDelegate {

public func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let offset = scrollView.contentOffset
if velocity.x == 0 {
if offset.x > leftWidth + rightWidth / 2 {
targetContentOffset.pointee.x = rightWidth + leftWidth
} else if offset.x < leftWidth / 2 {
targetContentOffset.pointee.x = 0
} else {
targetContentOffset.pointee.x = leftWidth
}
} else if velocity.x > 0 {
if offset.x > leftWidth {
targetContentOffset.pointee.x = rightWidth + leftWidth
} else {
targetContentOffset.pointee.x = leftWidth
}
} else {
if offset.x < leftWidth {
targetContentOffset.pointee.x = 0
} else {
targetContentOffset.pointee.x = leftWidth
}
}
}

open func scrollViewDidScroll(_ scrollView: UIScrollView) {

if lastStatus == .center && lastStatus != status {
Expand Down
4 changes: 3 additions & 1 deletion ZKDrawerController/Core/ZKDrawerScrollView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ public class ZKDrawerScrollView: UIScrollView, UIGestureRecognizerDelegate {
self.backgroundColor = UIColor.clear
self.showsHorizontalScrollIndicator = false
self.bounces = false
self.isPagingEnabled = true
// use custom paging behavior instead
self.decelerationRate = UIScrollViewDecelerationRateFast
// self.isPagingEnabled = true
self.panGestureRecognizer.delegate = self
}

Expand Down
8 changes: 4 additions & 4 deletions ZKDrawerController/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ class ViewController: UIViewController {
button.setTitle("进入下一层页面", for: .normal)
view.addSubview(button)

let button3 = UIButton.init(frame: CGRect.init(x: 200, y: 350, width: 150, height: 100))
button3.addTarget(self, action: #selector(presentAlert), for: .touchUpInside)
button3.setTitle("显示警告弹窗", for: .normal)
view.addSubview(button3)
// let button3 = UIButton.init(frame: CGRect.init(x: 200, y: 350, width: 150, height: 100))
// button3.addTarget(self, action: #selector(presentAlert), for: .touchUpInside)
// button3.setTitle("显示警告弹窗", for: .normal)
// view.addSubview(button3)

}
func presentAlert() {
Expand Down

0 comments on commit 73dbf14

Please sign in to comment.