ios - 使用 AMSlideMenu,重新启用滑动手势

标签 ios objective-c

需要使用 https://github.com/SocialObjects-Software/AMSlideMenu 中的 AMSlideMenu 帮助

在我正在创建的项目中,我需要禁用 AMSlideMenu 滑动,以便我可以使用 UISwipeGestureRecognize 执行其他操作。

主滑动已被禁用[selfdisableSlidePanGestureForLeftMenu];并且可以通过按menuBtn访问菜单,但我想使用UISwipeGestureRecognizer code> 其中 AMSlideMenu 似乎被禁用。

关于如何为我的项目重新获得 UISwipeGestureRecognizer 有什么想法吗?

谢谢!

- (void)viewDidLoad
{
     [super viewDidLoad];
     [self disableSlidePanGestureForLeftMenu];

     UIButton *menuBtn = [UIButton buttonWithType:UIButtonTypeCustom];
     [menuBtn addTarget:self
           action:@selector(menuButtonTapped:)
 forControlEvents:UIControlEventTouchUpInside];
     [self.view addSubview:menuBtn];

     UISwipeGestureRecognizer *leftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action: @selector(swipeRecognized:) ];
     [leftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];
     [self.view addGestureRecognizer:leftSwipe];

     UISwipeGestureRecognizer *rightSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action: @selector(swipeRecognized:) ];
     [rightSwipe setDirection:UISwipeGestureRecognizerDirectionRight];
     [self.view addGestureRecognizer:rightSwipe];
}

- (void)menuButtonTapped:(id)sender
{
    [self.mainSlideMenu openLeftMenu];
}

-(void) swipeRecognized:(UISwipeGestureRecognizer *)swipe {
    int pageNum; 
    switch (swipe.direction)
    {
        case UISwipeGestureRecognizerDirectionLeft:{
            pageNum++;
            break;
        }
        case UISwipeGestureRecognizerDirectionRight:{
            pageNum--;
            break;
        }
        default:
        break;
    }
}

最佳答案

在表格 View 中更改手势

- (void)viewDidLoad
{
     [super viewDidLoad];
     [self disableSlidePanGestureForLeftMenu];

     UIButton *menuBtn = [UIButton buttonWithType:UIButtonTypeCustom];
     [menuBtn addTarget:self
           action:@selector(menuButtonTapped:)
 forControlEvents:UIControlEventTouchUpInside];
     [self.view addSubview:menuBtn];

     UISwipeGestureRecognizer *leftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action: @selector(swipeRecognized:) ];
     [leftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];
     [self.tableView addGestureRecognizer:leftSwipe];

     UISwipeGestureRecognizer *rightSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action: @selector(swipeRecognized:) ];
     [rightSwipe setDirection:UISwipeGestureRecognizerDirectionRight];
     [self.tableView addGestureRecognizer:rightSwipe];
}

- (void)menuButtonTapped:(id)sender
{
    [self.mainSlideMenu openLeftMenu];
}

-(void) swipeRecognized:(UISwipeGestureRecognizer *)swipe {
    int pageNum; 
    switch (swipe.direction)
    {
        case UISwipeGestureRecognizerDirectionLeft:{
            pageNum++;
            break;
        }
        case UISwipeGestureRecognizerDirectionRight:{
            pageNum--;
            break;
        }
        default:
        break;
    }
}

现在只需添加一个委托(delegate)方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

    return YES;
}

关于ios - 使用 AMSlideMenu,重新启用滑动手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24287707/

相关文章:

objective-c - 锁屏中断 NSURLConnection

ios - 如何在 iOS 的共享首选项中保存 cookie?

ios - privateQueue managedObjectContext 的奇怪问题

ios - Xcode 在显示 "Block implicitly retains ' self 时表现得很奇怪';明确提及 'self' 以表明这是预期行为“警告

ios - 如何快速呈现来自外部框架的 View Controller ?

javascript - 如何将信息返回到 Objective-C 中的 javascript 函数?

iphone - 显示当前周的开始和结束日期

ios - Twitter 获取请求不断返回代码 88 - "Rate limit exceeded"

ios - 适用于 iOS 的 Color Vignette Core Image 过滤器?

ios - 点击按钮时 UITableView reloadData 不工作