Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
Material
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitriy Stepanets
Material
Commits
dc0bee16
Commit
dc0bee16
authored
Aug 27, 2015
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Plain Diff
merging issue-15
parents
4f6d7ab4
d9d5dd15
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
45 deletions
+29
-45
Source/SideNavController.swift
+29
-45
No files found.
Source/SideNavController.swift
View file @
dc0bee16
...
@@ -74,10 +74,10 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -74,10 +74,10 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
public
static
var
backdropViewContainerBackgroundColor
:
UIColor
=
.
blackColor
()
public
static
var
backdropViewContainerBackgroundColor
:
UIColor
=
.
blackColor
()
public
static
var
animationDuration
:
CGFloat
=
0.5
public
static
var
animationDuration
:
CGFloat
=
0.5
public
static
var
leftBezelWidth
:
CGFloat
=
16
public
static
var
leftBezelWidth
:
CGFloat
=
16
public
static
var
leftViewContainerWidth
:
CGFloat
=
2
7
0
public
static
var
leftViewContainerWidth
:
CGFloat
=
2
4
0
public
static
var
leftPanFromBezel
:
Bool
=
true
public
static
var
leftPanFromBezel
:
Bool
=
true
public
static
var
rightBezelWidth
:
CGFloat
=
16
public
static
var
rightBezelWidth
:
CGFloat
=
16
public
static
var
rightViewContainerWidth
:
CGFloat
=
2
7
0
public
static
var
rightViewContainerWidth
:
CGFloat
=
2
4
0
public
static
var
rightPanFromBezel
:
Bool
=
true
public
static
var
rightPanFromBezel
:
Bool
=
true
}
}
...
@@ -113,7 +113,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -113,7 +113,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
/**
/**
:name: isUserInteractionEnabled
:name: isUserInteractionEnabled
*/
*/
public
private(set)
var
isUserInteractionEnabled
:
Bool
{
public
var
isUserInteractionEnabled
:
Bool
{
get
{
get
{
return
mainViewContainer
!.
userInteractionEnabled
return
mainViewContainer
!.
userInteractionEnabled
}
}
...
@@ -223,8 +223,8 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -223,8 +223,8 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
self
.
init
()
self
.
init
()
self
.
mainViewController
=
mainViewController
self
.
mainViewController
=
mainViewController
self
.
leftViewController
=
leftViewController
self
.
leftViewController
=
leftViewController
setup
View
()
prepare
View
()
setup
LeftView
()
prepare
LeftView
()
}
}
/**
/**
...
@@ -234,8 +234,8 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -234,8 +234,8 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
self
.
init
()
self
.
init
()
self
.
mainViewController
=
mainViewController
self
.
mainViewController
=
mainViewController
self
.
rightViewController
=
rightViewController
self
.
rightViewController
=
rightViewController
setup
View
()
prepare
View
()
setup
RightView
()
prepare
RightView
()
}
}
/**
/**
...
@@ -246,9 +246,9 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -246,9 +246,9 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
self
.
mainViewController
=
mainViewController
self
.
mainViewController
=
mainViewController
self
.
leftViewController
=
leftViewController
self
.
leftViewController
=
leftViewController
self
.
rightViewController
=
rightViewController
self
.
rightViewController
=
rightViewController
setup
View
()
prepare
View
()
setup
LeftView
()
prepare
LeftView
()
setup
RightView
()
prepare
RightView
()
}
}
//
//
...
@@ -472,25 +472,25 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -472,25 +472,25 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
}
}
//
//
// :name:
setup
View
// :name:
prepare
View
//
//
internal
func
setup
View
()
{
internal
func
prepare
View
()
{
prepareMainContainer
()
prepareMainContainer
()
prepareBackdropContainer
()
prepareBackdropContainer
()
}
}
//
//
// :name:
setup
LeftView
// :name:
prepare
LeftView
//
//
internal
func
setup
LeftView
()
{
internal
func
prepare
LeftView
()
{
prepareContainer
(
&
leftContainer
,
viewContainer
:
&
leftViewContainer
,
originX
:
leftOriginX
,
width
:
options
.
leftViewContainerWidth
)
prepareContainer
(
&
leftContainer
,
viewContainer
:
&
leftViewContainer
,
originX
:
leftOriginX
,
width
:
options
.
leftViewContainerWidth
)
prepareLeftGestures
()
prepareLeftGestures
()
}
}
//
//
// :name:
setup
RightView
// :name:
prepare
RightView
//
//
internal
func
setup
RightView
()
{
internal
func
prepare
RightView
()
{
prepareContainer
(
&
rightContainer
,
viewContainer
:
&
rightViewContainer
,
originX
:
rightOriginX
,
width
:
options
.
rightViewContainerWidth
)
prepareContainer
(
&
rightContainer
,
viewContainer
:
&
rightViewContainer
,
originX
:
rightOriginX
,
width
:
options
.
rightViewContainerWidth
)
prepareRightGestures
()
prepareRightGestures
()
}
}
...
@@ -530,9 +530,9 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -530,9 +530,9 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
//
//
internal
func
handleLeftPanGesture
(
gesture
:
UIPanGestureRecognizer
)
{
internal
func
handleLeftPanGesture
(
gesture
:
UIPanGestureRecognizer
)
{
if
isRightContainerOpened
{
return
}
if
isRightContainerOpened
{
return
}
if
.
Began
==
gesture
.
state
{
if
let
vc
=
leftViewContainer
{
if
let
vc
=
leftView
Container
{
if
let
c
=
left
Container
{
if
let
c
=
leftContainer
{
if
.
Began
==
gesture
.
state
{
leftViewController
?
.
beginAppearanceTransition
(
!
isLeftContainerOpened
,
animated
:
true
)
leftViewController
?
.
beginAppearanceTransition
(
!
isLeftContainerOpened
,
animated
:
true
)
addShadow
(
&
leftViewContainer
)
addShadow
(
&
leftViewContainer
)
toggleWindow
(
shouldOpen
:
true
)
toggleWindow
(
shouldOpen
:
true
)
...
@@ -540,11 +540,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -540,11 +540,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
c
.
point
=
gesture
.
locationInView
(
view
)
c
.
point
=
gesture
.
locationInView
(
view
)
c
.
frame
=
vc
.
frame
c
.
frame
=
vc
.
frame
delegate
?
.
sideNavDidBeginLeftPan
?(
self
,
container
:
c
)
delegate
?
.
sideNavDidBeginLeftPan
?(
self
,
container
:
c
)
}
}
else
if
.
Changed
==
gesture
.
state
{
}
}
else
if
.
Changed
==
gesture
.
state
{
if
let
vc
=
leftViewContainer
{
if
let
c
=
leftContainer
{
c
.
point
=
gesture
.
translationInView
(
gesture
.
view
!
)
c
.
point
=
gesture
.
translationInView
(
gesture
.
view
!
)
let
r
=
(
vc
.
frame
.
origin
.
x
-
leftOriginX
)
/
vc
.
frame
.
size
.
width
let
r
=
(
vc
.
frame
.
origin
.
x
-
leftOriginX
)
/
vc
.
frame
.
size
.
width
let
s
:
CGFloat
=
1
-
(
1
-
options
.
contentViewScale
)
*
r
let
s
:
CGFloat
=
1
-
(
1
-
options
.
contentViewScale
)
*
r
...
@@ -553,11 +549,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -553,11 +549,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
backdropViewContainer
?
.
layer
.
opacity
=
Float
(
r
*
options
.
contentViewOpacity
)
backdropViewContainer
?
.
layer
.
opacity
=
Float
(
r
*
options
.
contentViewOpacity
)
mainViewContainer
?
.
transform
=
CGAffineTransformMakeScale
(
s
,
s
)
mainViewContainer
?
.
transform
=
CGAffineTransformMakeScale
(
s
,
s
)
delegate
?
.
sideNavDidChangeLeftPan
?(
self
,
container
:
c
)
delegate
?
.
sideNavDidChangeLeftPan
?(
self
,
container
:
c
)
}
}
else
{
}
}
else
{
if
let
vc
=
leftViewContainer
{
if
let
c
=
leftContainer
{
c
.
point
=
gesture
.
velocityInView
(
gesture
.
view
)
c
.
point
=
gesture
.
velocityInView
(
gesture
.
view
)
let
x
:
CGFloat
=
c
.
point
.
x
>=
1000
||
c
.
point
.
x
<=
-
1000
?
c
.
point
.
x
:
0
let
x
:
CGFloat
=
c
.
point
.
x
>=
1000
||
c
.
point
.
x
<=
-
1000
?
c
.
point
.
x
:
0
c
.
state
=
vc
.
frame
.
origin
.
x
<=
CGFloat
(
floor
(
leftOriginX
))
+
options
.
pointOfNoReturnWidth
||
c
.
point
.
x
<=
-
1000
?
.
Closed
:
.
Opened
c
.
state
=
vc
.
frame
.
origin
.
x
<=
CGFloat
(
floor
(
leftOriginX
))
+
options
.
pointOfNoReturnWidth
||
c
.
point
.
x
<=
-
1000
?
.
Closed
:
.
Opened
...
@@ -587,21 +579,17 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -587,21 +579,17 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
//
//
internal
func
handleRightPanGesture
(
gesture
:
UIPanGestureRecognizer
)
{
internal
func
handleRightPanGesture
(
gesture
:
UIPanGestureRecognizer
)
{
if
isLeftContainerOpened
{
return
}
if
isLeftContainerOpened
{
return
}
if
.
Began
==
gesture
.
state
{
if
let
vc
=
rightViewContainer
{
if
let
vc
=
rightViewContainer
{
if
let
c
=
rightContainer
{
if
let
c
=
rightContainer
{
if
.
Began
==
gesture
.
state
{
c
.
point
=
gesture
.
locationInView
(
view
)
c
.
state
=
isRightContainerOpened
?
.
Opened
:
.
Closed
c
.
frame
=
vc
.
frame
rightViewController
?
.
beginAppearanceTransition
(
!
isRightContainerOpened
,
animated
:
true
)
rightViewController
?
.
beginAppearanceTransition
(
!
isRightContainerOpened
,
animated
:
true
)
addShadow
(
&
rightViewContainer
)
addShadow
(
&
rightViewContainer
)
toggleWindow
(
shouldOpen
:
true
)
toggleWindow
(
shouldOpen
:
true
)
c
.
state
=
isRightContainerOpened
?
.
Opened
:
.
Closed
c
.
point
=
gesture
.
locationInView
(
view
)
c
.
frame
=
vc
.
frame
delegate
?
.
sideNavDidBeginRightPan
?(
self
,
container
:
c
)
delegate
?
.
sideNavDidBeginRightPan
?(
self
,
container
:
c
)
}
}
else
if
.
Changed
==
gesture
.
state
{
}
}
else
if
.
Changed
==
gesture
.
state
{
if
let
vc
=
rightViewContainer
{
if
let
c
=
rightContainer
{
c
.
point
=
gesture
.
translationInView
(
gesture
.
view
!
)
c
.
point
=
gesture
.
translationInView
(
gesture
.
view
!
)
let
r
=
(
rightOriginX
-
vc
.
frame
.
origin
.
x
)
/
vc
.
frame
.
size
.
width
let
r
=
(
rightOriginX
-
vc
.
frame
.
origin
.
x
)
/
vc
.
frame
.
size
.
width
let
s
:
CGFloat
=
1
-
(
1
-
options
.
contentViewScale
)
*
r
let
s
:
CGFloat
=
1
-
(
1
-
options
.
contentViewScale
)
*
r
...
@@ -611,11 +599,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
...
@@ -611,11 +599,7 @@ public class SideNavController: MaterialViewController, UIGestureRecognizerDeleg
backdropViewContainer
?
.
layer
.
opacity
=
Float
(
r
*
options
.
contentViewOpacity
)
backdropViewContainer
?
.
layer
.
opacity
=
Float
(
r
*
options
.
contentViewOpacity
)
mainViewContainer
?
.
transform
=
CGAffineTransformMakeScale
(
s
,
s
)
mainViewContainer
?
.
transform
=
CGAffineTransformMakeScale
(
s
,
s
)
delegate
?
.
sideNavDidChangeRightPan
?(
self
,
container
:
c
)
delegate
?
.
sideNavDidChangeRightPan
?(
self
,
container
:
c
)
}
}
else
{
}
}
else
{
if
let
vc
=
rightViewContainer
{
if
let
c
=
rightContainer
{
c
.
point
=
gesture
.
velocityInView
(
gesture
.
view
)
c
.
point
=
gesture
.
velocityInView
(
gesture
.
view
)
let
x
:
CGFloat
=
c
.
point
.
x
<=
-
1000
||
c
.
point
.
x
>=
1000
?
c
.
point
.
x
:
0
let
x
:
CGFloat
=
c
.
point
.
x
<=
-
1000
||
c
.
point
.
x
>=
1000
?
c
.
point
.
x
:
0
c
.
state
=
vc
.
frame
.
origin
.
x
>=
CGFloat
(
floor
(
rightOriginX
)
-
options
.
pointOfNoReturnWidth
)
||
c
.
point
.
x
>=
1000
?
.
Closed
:
.
Opened
c
.
state
=
vc
.
frame
.
origin
.
x
>=
CGFloat
(
floor
(
rightOriginX
)
-
options
.
pointOfNoReturnWidth
)
||
c
.
point
.
x
>=
1000
?
.
Closed
:
.
Opened
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment