Commit 800708dd by Daniel Dahan

Merge pull request #408 from mohpor/development

Added MenuViewDelegate for touch outside menu buttons
parents 41ca8398 7de1a4f2
......@@ -15,7 +15,7 @@
9663F93C1C7A744600AF0965 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9663F93A1C7A744600AF0965 /* LaunchScreen.storyboard */; };
9663F9481C7A749400AF0965 /* AppNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F9471C7A749400AF0965 /* AppNavigationController.swift */; };
9663F94A1C7A74B500AF0965 /* AppSearchBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F9491C7A74B500AF0965 /* AppSearchBarViewController.swift */; };
9663F94C1C7A74C700AF0965 /* AppMenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F94B1C7A74C700AF0965 /* AppMenuViewController.swift */; };
9663F94C1C7A74C700AF0965 /* AppMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F94B1C7A74C700AF0965 /* AppMenuController.swift */; };
9663F94E1C7A74EA00AF0965 /* AppLeftViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F94D1C7A74EA00AF0965 /* AppLeftViewController.swift */; };
9663F9521C7A751D00AF0965 /* ItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F9511C7A751D00AF0965 /* ItemViewController.swift */; };
96CC08881C7FEBD60034FF84 /* RecipesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96CC08871C7FEBD60034FF84 /* RecipesViewController.swift */; };
......@@ -45,7 +45,7 @@
9663F93D1C7A744600AF0965 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9663F9471C7A749400AF0965 /* AppNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppNavigationController.swift; sourceTree = "<group>"; };
9663F9491C7A74B500AF0965 /* AppSearchBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppSearchBarViewController.swift; sourceTree = "<group>"; };
9663F94B1C7A74C700AF0965 /* AppMenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppMenuViewController.swift; sourceTree = "<group>"; };
9663F94B1C7A74C700AF0965 /* AppMenuController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppMenuController.swift; sourceTree = "<group>"; };
9663F94D1C7A74EA00AF0965 /* AppLeftViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppLeftViewController.swift; sourceTree = "<group>"; };
9663F9511C7A751D00AF0965 /* ItemViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemViewController.swift; sourceTree = "<group>"; };
96CC08871C7FEBD60034FF84 /* RecipesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecipesViewController.swift; sourceTree = "<group>"; };
......@@ -84,7 +84,7 @@
9663F9311C7A744600AF0965 /* AppDelegate.swift */,
9663F9471C7A749400AF0965 /* AppNavigationController.swift */,
9663F9491C7A74B500AF0965 /* AppSearchBarViewController.swift */,
9663F94B1C7A74C700AF0965 /* AppMenuViewController.swift */,
9663F94B1C7A74C700AF0965 /* AppMenuController.swift */,
9663F94D1C7A74EA00AF0965 /* AppLeftViewController.swift */,
96CC08871C7FEBD60034FF84 /* RecipesViewController.swift */,
9663F9331C7A744600AF0965 /* RecommendationViewController.swift */,
......@@ -173,7 +173,7 @@
96CC08881C7FEBD60034FF84 /* RecipesViewController.swift in Sources */,
9663F9481C7A749400AF0965 /* AppNavigationController.swift in Sources */,
9663F9341C7A744600AF0965 /* RecommendationViewController.swift in Sources */,
9663F94C1C7A74C700AF0965 /* AppMenuViewController.swift in Sources */,
9663F94C1C7A74C700AF0965 /* AppMenuController.swift in Sources */,
9663F9321C7A744600AF0965 /* AppDelegate.swift in Sources */,
9663F9521C7A751D00AF0965 /* ItemViewController.swift in Sources */,
96162C6C1CA71C8700E3A235 /* VideoViewController.swift in Sources */,
......
......@@ -36,7 +36,7 @@ flow of your application.
import UIKit
import Material
class AppMenuController: MenuController {
class AppMenuController: MenuController, MenuViewDelegate {
/// MenuView diameter.
private let baseSize: CGSize = CGSizeMake(56, 56)
......@@ -74,6 +74,11 @@ class AppMenuController: MenuController {
(menuView.menu.views?.first as? MaterialButton)?.animate(MaterialAnimation.rotate(angle: 0))
}
// Handles touch outside
func menuViewDidTapOutside(menuView: MenuView) {
closeMenu()
}
/// Handler for blue button.
func handleBlueButton() {
closeMenu()
......@@ -100,6 +105,9 @@ class AppMenuController: MenuController {
/// Prepares the menuView.
private func prepareMenuView() {
menuView.delegate = self
var image: UIImage? = MaterialIcon.cm.add
let menuButton: FabButton = FabButton()
menuButton.tintColor = MaterialColor.white
......
......@@ -30,6 +30,14 @@
import UIKit
@objc(MenuViewDelegate)
public protocol MenuViewDelegate: MaterialDelegate {
/// Gets called when the user taps outside menu buttons.
optional func menuViewDidTapOutside(menuView: MenuView)
}
public class MenuView : MaterialPulseView {
/// References the Menu instance.
public private(set) lazy var menu: Menu = Menu(origin: CGPointZero)
......@@ -96,6 +104,9 @@ public class MenuView : MaterialPulseView {
return v.hitTest(p, withEvent: event)
}
}
(delegate as? MenuViewDelegate)?.menuViewDidTapOutside?(self)
return super.hitTest(point, withEvent: event)
}
}
\ No newline at end of file
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