Objective c MFSideMenu全尺寸平移手势
我在应用程序中使用MFSideMenu,并且只能在导航栏上使用平移手势显示菜单。我希望它能在整个屏幕上运行,就像在facebook应用程序上一样 我试着改变这一行(MFSideMenuManager.m中的l.39) 为此:Objective c MFSideMenu全尺寸平移手势,objective-c,ios,cocoa,Objective C,Ios,Cocoa,我在应用程序中使用MFSideMenu,并且只能在导航栏上使用平移手势显示菜单。我希望它能在整个屏幕上运行,就像在facebook应用程序上一样 我试着改变这一行(MFSideMenuManager.m中的l.39) 为此: [controller.view addGestureRecognizer:recognizer]; 但它就是不起作用 你知道我应该编辑什么才能让它工作吗 感谢您的帮助我不知道MFSideMenuManager,但如果该栏是可拖动的,我希望它有一个带行的UIPanges
[controller.view addGestureRecognizer:recognizer];
但它就是不起作用
你知道我应该编辑什么才能让它工作吗
感谢您的帮助我不知道MFSideMenuManager,但如果该栏是可拖动的,我希望它有一个带行的UIPangestureRecognitor
[self.navigationController.navigationBar addGestureRecognizer:gestureRecognizer];
因此,您要做的是将导航栏替换为整个导航控制器的视图
[self.navigationController.view addGestureRecognizer:gestureRecognizer];
我不知道MFSideMenuManager,但如果该条是可拖动的,我希望它有一个带行的UIPangestureRecognitor
[self.navigationController.navigationBar addGestureRecognizer:gestureRecognizer];
因此,您要做的是将导航栏替换为整个导航控制器的视图
[self.navigationController.view addGestureRecognizer:gestureRecognizer];
我终于成功了。该手势实际上已经实现,但仅在菜单隐藏时才起作用。我们必须删除两个条件,以确保它双向工作 在MFSideMenuManager.m中有两行要编辑
[controller.navigationBar addGestureRecognizer:recognizer];
在手势识别器shouldBegin:方法中
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.navigationController.view] &&
self.navigationController.menuState != MFSideMenuStateHidden) return YES;
变成
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.navigationController.view]) return YES;
- (void) navigationControllerPanned:(id)sender {
[self handleNavigationBarPan:sender];
}
在NavigationControllerPaned:方法中,只需删除if行
- (void) navigationControllerPanned:(id)sender {
if(self.navigationController.menuState == MFSideMenuStateHidden) return;
[self handleNavigationBarPan:sender];
}
变成
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.navigationController.view]) return YES;
- (void) navigationControllerPanned:(id)sender {
[self handleNavigationBarPan:sender];
}
而且它有效
编辑库并不是一个很好的做法,但如果您想进一步向MFSideMenu添加一个布尔选项以使其可配置,则很容易做到。我终于成功地使它工作了。该手势实际上已经实现,但仅在菜单隐藏时才起作用。我们必须删除两个条件,以确保它双向工作 在MFSideMenuManager.m中有两行要编辑
[controller.navigationBar addGestureRecognizer:recognizer];
在手势识别器shouldBegin:方法中
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.navigationController.view] &&
self.navigationController.menuState != MFSideMenuStateHidden) return YES;
变成
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.navigationController.view]) return YES;
- (void) navigationControllerPanned:(id)sender {
[self handleNavigationBarPan:sender];
}
在NavigationControllerPaned:方法中,只需删除if行
- (void) navigationControllerPanned:(id)sender {
if(self.navigationController.menuState == MFSideMenuStateHidden) return;
[self handleNavigationBarPan:sender];
}
变成
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.navigationController.view]) return YES;
- (void) navigationControllerPanned:(id)sender {
[self handleNavigationBarPan:sender];
}
而且它有效
编辑库并不是一个很好的做法,但如果您想进一步向MFSideMenu添加一个布尔选项以使其可配置,这很容易。这是我以前尝试过的,但不幸的是,它不起作用。不管怎样,谢谢。这是我以前试过的,但不幸的是,它不起作用。谢谢你