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
3f51240e
Commit
3f51240e
authored
Feb 21, 2016
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated App example
parent
dfd7d96e
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
73 additions
and
42 deletions
+73
-42
Examples/Programmatic/NavigationBarViewController/NavigationBarViewController/AppMenuViewController.swift
+33
-22
Examples/Programmatic/NavigationBarViewController/NavigationBarViewController/AppNavigationBarViewController.swift
+1
-0
Sources/MaterialTransitionAnimation.swift
+2
-2
Sources/MenuView.swift
+18
-0
Sources/NavigationBarViewController.swift
+19
-18
No files found.
Examples/Programmatic/NavigationBarViewController/NavigationBarViewController/AppMenuViewController.swift
View file @
3f51240e
...
...
@@ -52,59 +52,71 @@ class AppMenuViewController: MenuViewController {
/**
*/
func
handleBtn2
()
{
if
navigationBar
ViewController
?
.
mainViewController
is
BlueViewController
{
if
menu
ViewController
?
.
mainViewController
is
BlueViewController
{
return
}
handleMenu
()
menuViewController
?
.
transitionFromMainViewController
(
BlueViewController
())
navigationBarViewController
?
.
navigationBarView
.
titleLabel
?
.
text
=
"Blue"
closeMenu
{
[
weak
self
]
in
self
?
.
menuViewController
?
.
transitionFromMainViewController
(
BlueViewController
(),
options
:
[
.
TransitionCrossDissolve
])
}
}
/**
*/
func
handleBtn3
()
{
if
navigationBar
ViewController
?
.
mainViewController
is
GreenViewController
{
if
menu
ViewController
?
.
mainViewController
is
GreenViewController
{
return
}
handleMenu
()
menuViewController
?
.
transitionFromMainViewController
(
GreenViewController
()
)
navigationBarViewController
?
.
navigationBarView
.
titleLabel
?
.
text
=
"Green"
closeMenu
{
[
weak
self
]
in
self
?
.
menuViewController
?
.
transitionFromMainViewController
(
GreenViewController
(),
options
:
[
.
TransitionCrossDissolve
]
)
}
}
/**
*/
func
handleBtn4
()
{
if
navigationBarViewController
?
.
mainViewController
is
FeedViewController
{
if
(
menuViewController
?
.
mainViewController
as?
NavigationBarViewController
)
?
.
mainViewController
is
FeedViewController
{
return
}
handleMenu
()
menuViewController
?
.
transitionFromMainViewController
(
AppNavigationBarViewController
(
mainViewController
:
FeedViewController
()))
navigationBarViewController
?
.
navigationBarView
.
titleLabel
?
.
text
=
"Feed"
closeMenu
{
[
weak
self
]
in
self
?
.
menuViewController
?
.
transitionFromMainViewController
(
AppNavigationBarViewController
(
mainViewController
:
FeedViewController
()),
options
:
[
.
TransitionCrossDissolve
])
}
}
/// Opens the menu with a callback.
func
openMenu
(
completion
:
(()
->
Void
)?
=
nil
)
{
(
menuView
.
menu
.
views
?
.
first
as?
MaterialButton
)?
.
animate
(
MaterialAnimation
.
rotate
(
0.125
))
menuView
.
menu
.
open
{
[
weak
self
]
(
v
:
UIView
)
in
(
v
as?
MaterialButton
)?
.
pulse
()
if
self
?
.
menuView
.
menu
.
views
?
.
last
==
v
{
completion
?()
}
}
}
/// Closes the menu with a callback.
func
closeMenu
(
completion
:
(()
->
Void
)?
=
nil
)
{
(
menuView
.
menu
.
views
?
.
first
as?
MaterialButton
)?
.
animate
(
MaterialAnimation
.
rotate
(
-
0.125
))
menuView
.
close
(
completion
)
}
/// Handle the menuView touch event.
func
handleMenu
()
{
var
rotate
:
Double
=
-
0.125
if
true
==
menuView
.
menu
.
opened
{
hideMenuBackdrop
()
menuView
.
menu
.
close
()
closeMenu
()
}
else
{
showMenuBackdrop
()
rotate
=
0.125
menuView
.
menu
.
open
()
{
(
v
:
UIView
)
in
(
v
as?
MaterialButton
)?
.
pulse
()
}
openMenu
()
}
(
menuView
.
menu
.
views
?
.
first
as?
MaterialButton
)?
.
animate
(
MaterialAnimation
.
rotate
(
rotate
))
}
/// Prepares view.
private
func
prepareView
()
{
view
.
backgroundColor
=
MaterialColor
.
white
view
.
backgroundColor
=
MaterialColor
.
black
}
/// Prepares the add button.
...
...
@@ -141,7 +153,6 @@ class AppMenuViewController: MenuViewController {
btn4
.
addTarget
(
self
,
action
:
"handleBtn4"
,
forControlEvents
:
.
TouchUpInside
)
// Initialize the menu and setup the configuration options.
menuView
.
menu
.
direction
=
.
Up
menuView
.
menu
.
baseViewSize
=
baseViewSize
menuView
.
menu
.
views
=
[
btn1
,
btn2
,
btn3
,
btn4
]
...
...
Examples/Programmatic/NavigationBarViewController/NavigationBarViewController/AppNavigationBarViewController.swift
View file @
3f51240e
...
...
@@ -81,6 +81,7 @@ class AppNavigationBarViewController: NavigationBarViewController {
guard
let
v
:
AppSearchBarViewController
=
AppSearchBarViewController
(
mainViewController
:
SearchListViewController
())
else
{
return
}
navigationBarViewController
?
.
floatingViewController
=
v
}
...
...
Sources/MaterialTransitionAnimation.swift
View file @
3f51240e
...
...
@@ -73,9 +73,9 @@ public func MaterialAnimationTransitionSubTypeToValue(direction: MaterialAnimati
case
.
Left
:
return
kCATransitionFromLeft
case
.
Top
:
return
kCATransitionFromTop
case
.
Bottom
:
return
kCATransitionFromBottom
case
.
Bottom
:
return
kCATransitionFromTop
}
}
...
...
Sources/MenuView.swift
View file @
3f51240e
...
...
@@ -49,6 +49,24 @@ public class MenuView : MaterialPulseView {
backgroundColor
=
nil
}
/// Opens the menu with a callback.
public
func
open
(
completion
:
(()
->
Void
)?
=
nil
)
{
menu
.
open
{
[
weak
self
]
(
v
:
UIView
)
in
if
self
?
.
menu
.
views
?
.
last
==
v
{
completion
?()
}
}
}
/// Closes the menu with a callback.
public
func
close
(
completion
:
(()
->
Void
)?
=
nil
)
{
menu
.
close
{
[
weak
self
]
(
v
:
UIView
)
in
if
self
?
.
menu
.
views
?
.
last
==
v
{
completion
?()
}
}
}
public
override
func
hitTest
(
point
:
CGPoint
,
withEvent
event
:
UIEvent
?)
->
UIView
?
{
/**
Since the subviews will be outside the bounds of this view,
...
...
Sources/NavigationBarViewController.swift
View file @
3f51240e
...
...
@@ -49,18 +49,32 @@ public extension UIViewController {
}
public
class
NavigationBarViewController
:
UIViewController
{
/// Reference to the NavigationBarView.
public
private(set)
lazy
var
navigationBarView
:
NavigationBarView
=
NavigationBarView
()
/// Internal reference to the floatingViewController.
private
var
internalFloatingViewController
:
UIViewController
?
/// Reference to the NavigationBarView.
public
private(set)
lazy
var
navigationBarView
:
NavigationBarView
=
NavigationBarView
()
/// A floating UIViewController.
public
var
floatingViewController
:
UIViewController
?
{
get
{
return
internalFloatingViewController
}
set
(
value
)
{
if
let
v
:
UIViewController
=
internalFloatingViewController
{
sideNavigationViewController
?
.
enabled
=
true
UIView
.
animateWithDuration
(
0.5
,
animations
:
{
[
unowned
self
]
in
v
.
view
.
center
.
y
=
2
*
self
.
view
.
bounds
.
height
})
{
[
unowned
self
]
_
in
v
.
willMoveToParentViewController
(
nil
)
v
.
view
.
removeFromSuperview
()
v
.
removeFromParentViewController
()
self
.
internalFloatingViewController
=
nil
}
}
if
let
v
:
UIViewController
=
value
{
/**
Disable the sideNavigationViewController from opening while in
...
...
@@ -79,24 +93,11 @@ public class NavigationBarViewController: UIViewController {
// Animate the noteButton out and the noteViewController! in.
v
.
view
.
hidden
=
false
internalFloatingViewController
=
v
UIView
.
animateWithDuration
(
0.5
,
animations
:
{
[
unowned
self
]
in
v
.
view
.
center
.
y
=
self
.
view
.
bounds
.
height
/
2
})
}
else
if
let
v
:
UIViewController
=
internalFloatingViewController
{
sideNavigationViewController
?
.
enabled
=
true
internalFloatingViewController
=
nil
UIView
.
animateWithDuration
(
0.5
,
animations
:
{
[
unowned
self
]
in
v
.
view
.
center
.
y
=
2
*
self
.
view
.
bounds
.
height
})
{
_
in
v
.
willMoveToParentViewController
(
nil
)
v
.
view
.
removeFromSuperview
()
v
.
removeFromParentViewController
()
})
{
[
unowned
self
]
_
in
self
.
internalFloatingViewController
=
v
}
}
}
...
...
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