我在ios中制作了一个应用程序。我使用swrevealviewcontroller进行菜单。当菜单打开或不打开时我需要键盘消失。那么如何识别菜单是否开放?
答案 0 :(得分:4)
Swift 3
在 viewDidLoad()
中将revealViewControllerDelegate设置为selfself.revealViewController().delegate = self
func revealController(_ revealController: SWRevealViewController!, didMoveTo position: FrontViewPosition) {
switch position {
case FrontViewPosition.leftSideMostRemoved:
print("LeftSideMostRemoved")
// Left most position, front view is presented left-offseted by rightViewRevealWidth+rigthViewRevealOverdraw
case FrontViewPosition.leftSideMost:
print("LeftSideMost")
// Left position, front view is presented left-offseted by rightViewRevealWidth
case FrontViewPosition.leftSide:
print("LeftSide")
// Center position, rear view is hidden behind front controller
case FrontViewPosition.left:
print("Left")
//Closed
//0 rotation
// Right possition, front view is presented right-offseted by rearViewRevealWidth
case FrontViewPosition.right:
print("Right")
//Opened
//rotated
// Right most possition, front view is presented right-offseted by rearViewRevealWidth+rearViewRevealOverdraw
case FrontViewPosition.rightMost:
print("RightMost")
// Front controller is removed from view. Animated transitioning from this state will cause the same
// effect than animating from FrontViewPositionRightMost. Use this instead of FrontViewPositionRightMost when
// you intent to remove the front controller view from the view hierarchy.
case FrontViewPosition.rightMostRemoved:
print("RightMostRemoved")
}
}
答案 1 :(得分:2)
如果要在代码中检查SWRevealViewController的状态,请检查SWRevealViewController的frontViewPosition
属性
if (self.revealViewController().frontViewPosition != FrontViewPosition.Left) {
// Do something
}
如果您希望收到有关菜单切换的通知,请在您的代理中实施以下SWRevealViewControllerDelegate
方法。 (你想在哪里观察这些变化)
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position;
- (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position;
答案 2 :(得分:0)
用于 jonkykong / SideMenu
实现UISideMenuNavigationControllerDelegate
func sideMenuDidAppear(menu: UISideMenuNavigationController, animated: Bool) {
print("SideMenu Appeared! (animated: \(animated))")
}
func sideMenuDidDisappear(menu: UISideMenuNavigationController, animated: Bool) {
print("SideMenu Disappeared! (animated: \(animated))")
}