Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c MFSideMenu全尺寸平移手势_Objective C_Ios_Cocoa - Fatal编程技术网

Objective c MFSideMenu全尺寸平移手势

Objective c MFSideMenu全尺寸平移手势,objective-c,ios,cocoa,Objective C,Ios,Cocoa,我在应用程序中使用MFSideMenu,并且只能在导航栏上使用平移手势显示菜单。我希望它能在整个屏幕上运行,就像在facebook应用程序上一样 我试着改变这一行(MFSideMenuManager.m中的l.39) 为此: [controller.view addGestureRecognizer:recognizer]; 但它就是不起作用 你知道我应该编辑什么才能让它工作吗 感谢您的帮助我不知道MFSideMenuManager,但如果该栏是可拖动的,我希望它有一个带行的UIPanges

我在应用程序中使用MFSideMenu,并且只能在导航栏上使用平移手势显示菜单。我希望它能在整个屏幕上运行,就像在facebook应用程序上一样

我试着改变这一行(MFSideMenuManager.m中的l.39)

为此:

[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添加一个布尔选项以使其可配置,这很容易。

这是我以前尝试过的,但不幸的是,它不起作用。不管怎样,谢谢。这是我以前试过的,但不幸的是,它不起作用。谢谢你