我终于成功地让它工作了。该手势实际上已经实现,但仅在菜单隐藏时才有效。我们必须删除 2 个条件以确保它可以双向工作
MFSideMenuManager.m 中有两行需要编辑
在gestureRecognizerShouldBegin: 方法中
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;
在 navigationControllerPanned: 方法中,只需删除 if 行
- (void) navigationControllerPanned:(id)sender {
if(self.navigationController.menuState == MFSideMenuStateHidden) return;
[self handleNavigationBarPan:sender];
}
变成
- (void) navigationControllerPanned:(id)sender {
[self handleNavigationBarPan:sender];
}
它有效!
编辑库并不是一个非常好的做法,但如果您想进一步向 MFSideMenu 添加一个布尔选项以使其可配置,这很容易。