Skip to content
This repository has been archived by the owner on Jun 17, 2018. It is now read-only.

Disable auto-select by swiping MenuItem on Standard mode #332

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions Pod/Classes/PagingMenuController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -313,12 +313,13 @@ open class PagingMenuController: UIViewController {
extension PagingMenuController: UIScrollViewDelegate {
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
onMove?(.didScrollEnd)
guard let menuOptions = menuOptions else { return }

let nextPage: Int
switch (scrollView, pagingViewController, menuView) {
case let (scrollView, pagingViewController?, _) where scrollView.isEqual(pagingViewController.contentScrollView):
switch (scrollView, pagingViewController, menuView, menuOptions.isAutoSelectAtScrollEnd) {
case let (scrollView, pagingViewController?, _, _) where scrollView.isEqual(pagingViewController.contentScrollView):
nextPage = nextPageFromCurrentPosition
case let (scrollView, _, menuView?) where scrollView.isEqual(menuView):
case let (scrollView, _, menuView?, autoSelect) where scrollView.isEqual(menuView) && autoSelect:
nextPage = nextPageFromCurrentPoint
default: return
}
Expand All @@ -331,8 +332,10 @@ extension PagingMenuController: UIScrollViewDelegate {
}

public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
switch (scrollView, decelerate) {
case (let scrollView, false) where scrollView.isEqual(menuView): break
guard let menuOptions = menuOptions else { return }

switch (scrollView, decelerate, menuOptions.isAutoSelectAtScrollEnd) {
case (let scrollView, false, true) where scrollView.isEqual(menuView): break
default: return
}

Expand Down
4 changes: 4 additions & 0 deletions Pod/Classes/Protocols/MenuViewCustomizable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public protocol MenuViewCustomizable {
var animationDuration: TimeInterval { get }
var deceleratingRate: CGFloat { get }
var selectedItemCenter: Bool { get }
var isAutoSelectAtScrollEnd: Bool { get }
var displayMode: MenuDisplayMode { get }
var focusMode: MenuFocusMode { get }
var dummyItemViewsSet: Int { get }
Expand Down Expand Up @@ -42,6 +43,9 @@ public extension MenuViewCustomizable {
var selectedItemCenter: Bool {
return true
}
var isAutoSelectAtScrollEnd: Bool {
return true
}
var displayMode: MenuDisplayMode {
return .standard(widthMode: .flexible, centerItem: false, scrollingMode: .pagingEnabled)
}
Expand Down