Commit 097b6c06 by M. Porooshani

Added MenuViewDelegate for touch outside menu buttons

parent 41ca8398
......@@ -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,16 @@
import UIKit
@objc(MenuViewDelegate)
public protocol MenuViewDelegate: MaterialDelegate {
/**
:name: menuViewDidTapOutside
*/
func menuViewDidTapOutside(menuView: MenuView)
}
public class MenuView : MaterialPulseView {
/// References the Menu instance.
public private(set) lazy var menu: Menu = Menu(origin: CGPointZero)
......@@ -96,6 +106,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