Commit 097b6c06 by M. Porooshani

Added MenuViewDelegate for touch outside menu buttons

parent 41ca8398
...@@ -36,7 +36,7 @@ flow of your application. ...@@ -36,7 +36,7 @@ flow of your application.
import UIKit import UIKit
import Material import Material
class AppMenuController: MenuController { class AppMenuController: MenuController, MenuViewDelegate {
/// MenuView diameter. /// MenuView diameter.
private let baseSize: CGSize = CGSizeMake(56, 56) private let baseSize: CGSize = CGSizeMake(56, 56)
...@@ -74,6 +74,11 @@ class AppMenuController: MenuController { ...@@ -74,6 +74,11 @@ class AppMenuController: MenuController {
(menuView.menu.views?.first as? MaterialButton)?.animate(MaterialAnimation.rotate(angle: 0)) (menuView.menu.views?.first as? MaterialButton)?.animate(MaterialAnimation.rotate(angle: 0))
} }
// Handles touch outside
func menuViewDidTapOutside(menuView: MenuView) {
closeMenu()
}
/// Handler for blue button. /// Handler for blue button.
func handleBlueButton() { func handleBlueButton() {
closeMenu() closeMenu()
...@@ -100,6 +105,9 @@ class AppMenuController: MenuController { ...@@ -100,6 +105,9 @@ class AppMenuController: MenuController {
/// Prepares the menuView. /// Prepares the menuView.
private func prepareMenuView() { private func prepareMenuView() {
menuView.delegate = self
var image: UIImage? = MaterialIcon.cm.add var image: UIImage? = MaterialIcon.cm.add
let menuButton: FabButton = FabButton() let menuButton: FabButton = FabButton()
menuButton.tintColor = MaterialColor.white menuButton.tintColor = MaterialColor.white
......
...@@ -30,6 +30,16 @@ ...@@ -30,6 +30,16 @@
import UIKit import UIKit
@objc(MenuViewDelegate)
public protocol MenuViewDelegate: MaterialDelegate {
/**
:name: menuViewDidTapOutside
*/
func menuViewDidTapOutside(menuView: MenuView)
}
public class MenuView : MaterialPulseView { public class MenuView : MaterialPulseView {
/// References the Menu instance. /// References the Menu instance.
public private(set) lazy var menu: Menu = Menu(origin: CGPointZero) public private(set) lazy var menu: Menu = Menu(origin: CGPointZero)
...@@ -96,6 +106,9 @@ public class MenuView : MaterialPulseView { ...@@ -96,6 +106,9 @@ public class MenuView : MaterialPulseView {
return v.hitTest(p, withEvent: event) return v.hitTest(p, withEvent: event)
} }
} }
(delegate as? MenuViewDelegate)?.menuViewDidTapOutside(self)
return super.hitTest(point, withEvent: event) 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