Commit 3724bbd3 by Daniel Dahan

development: API updates to SpringMotion and FABMenu direction properties

parent f1616f4e
...@@ -175,9 +175,9 @@ open class FABMenu: View { ...@@ -175,9 +175,9 @@ open class FABMenu: View {
/// A reference to the SpringMotion object. /// A reference to the SpringMotion object.
internal let spring = SpringMotion() internal let spring = SpringMotion()
open var direction: FABMenuDirection { open var fabMenuDirection: FABMenuDirection {
get { get {
switch spring.direction { switch spring.springDirection {
case .up: case .up:
return .up return .up
case .down: case .down:
...@@ -191,13 +191,13 @@ open class FABMenu: View { ...@@ -191,13 +191,13 @@ open class FABMenu: View {
set(value) { set(value) {
switch value { switch value {
case .up: case .up:
spring.direction = .up spring.springDirection = .up
case .down: case .down:
spring.direction = .down spring.springDirection = .down
case .left: case .left:
spring.direction = .left spring.springDirection = .left
case .right: case .right:
spring.direction = .right spring.springDirection = .right
} }
layoutSubviews() layoutSubviews()
...@@ -313,7 +313,7 @@ extension FABMenu { ...@@ -313,7 +313,7 @@ extension FABMenu {
- Parameter animations: An animation block to execute on each view's animation. - Parameter animations: An animation block to execute on each view's animation.
- Parameter completion: A completion block to execute on each view's animation. - Parameter completion: A completion block to execute on each view's animation.
*/ */
fileprivate func open(duration: TimeInterval = 0.15, delay: TimeInterval = 0, usingSpringWithDamping: CGFloat = 0.5, initialSpringVelocity: CGFloat = 0, options: UIViewAnimationOptions = [], animations: ((UIView) -> Void)? = nil, completion: ((UIView) -> Void)? = nil) { open func open(duration: TimeInterval = 0.15, delay: TimeInterval = 0, usingSpringWithDamping: CGFloat = 0.5, initialSpringVelocity: CGFloat = 0, options: UIViewAnimationOptions = [], animations: ((UIView) -> Void)? = nil, completion: ((UIView) -> Void)? = nil) {
delegate?.fabMenuWillOpen?(fabMenu: self) delegate?.fabMenuWillOpen?(fabMenu: self)
spring.expand(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations) { [weak self, completion = completion] (view) in spring.expand(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations) { [weak self, completion = completion] (view) in
...@@ -341,7 +341,7 @@ extension FABMenu { ...@@ -341,7 +341,7 @@ extension FABMenu {
- Parameter animations: An animation block to execute on each view's animation. - Parameter animations: An animation block to execute on each view's animation.
- Parameter completion: A completion block to execute on each view's animation. - Parameter completion: A completion block to execute on each view's animation.
*/ */
fileprivate func close(duration: TimeInterval = 0.15, delay: TimeInterval = 0, usingSpringWithDamping: CGFloat = 0.5, initialSpringVelocity: CGFloat = 0, options: UIViewAnimationOptions = [], animations: ((UIView) -> Void)? = nil, completion: ((UIView) -> Void)? = nil) { open func close(duration: TimeInterval = 0.15, delay: TimeInterval = 0, usingSpringWithDamping: CGFloat = 0.5, initialSpringVelocity: CGFloat = 0, options: UIViewAnimationOptions = [], animations: ((UIView) -> Void)? = nil, completion: ((UIView) -> Void)? = nil) {
delegate?.fabMenuWillClose?(fabMenu: self) delegate?.fabMenuWillClose?(fabMenu: self)
spring.contract(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations) { [weak self, completion = completion] (view) in spring.contract(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations) { [weak self, completion = completion] (view) in
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
import UIKit import UIKit
public enum FABMenuBacking { public enum FABMenuBacking {
case none
case fade case fade
case blur case blur
} }
...@@ -130,6 +131,10 @@ extension FABMenuController { ...@@ -130,6 +131,10 @@ extension FABMenuController {
/// Hides the blurView. /// Hides the blurView.
fileprivate func hideBlurView() { fileprivate func hideBlurView() {
guard .blur == fabMenuBacking else {
return
}
guard fabMenu.isOpened, fabMenu.isEnabled else { guard fabMenu.isOpened, fabMenu.isEnabled else {
return return
} }
...@@ -155,6 +160,10 @@ extension FABMenuController { ...@@ -155,6 +160,10 @@ extension FABMenuController {
/// Hides the fade. /// Hides the fade.
fileprivate func hideFade() { fileprivate func hideFade() {
guard .fade == fabMenuBacking else {
return
}
guard fabMenu.isOpened, fabMenu.isEnabled else { guard fabMenu.isOpened, fabMenu.isEnabled else {
return return
} }
......
...@@ -40,7 +40,7 @@ public enum SpringDirection: Int { ...@@ -40,7 +40,7 @@ public enum SpringDirection: Int {
open class SpringMotion { open class SpringMotion {
/// A SpringDirection value. /// A SpringDirection value.
open var direction = SpringDirection.up open var springDirection = SpringDirection.up
/// A Boolean that indicates if the menu is open or not. /// A Boolean that indicates if the menu is open or not.
open var isOpened = false open var isOpened = false
...@@ -140,7 +140,7 @@ extension SpringMotion { ...@@ -140,7 +140,7 @@ extension SpringMotion {
disable() disable()
switch direction { switch springDirection {
case .up: case .up:
expandUp(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations, completion: completion) expandUp(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations, completion: completion)
case .down: case .down:
...@@ -169,7 +169,7 @@ extension SpringMotion { ...@@ -169,7 +169,7 @@ extension SpringMotion {
disable() disable()
switch direction { switch springDirection {
case .up: case .up:
contractUp(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations, completion: completion) contractUp(duration: duration, delay: delay, usingSpringWithDamping: usingSpringWithDamping, initialSpringVelocity: initialSpringVelocity, options: options, animations: animations, completion: completion)
case .down: case .down:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment