Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Ios 带侧菜单的页面查看器(导航抽屉)_Ios_Objective C_Navigation Drawer_Uipageviewcontroller - Fatal编程技术网

Ios 带侧菜单的页面查看器(导航抽屉)

Ios 带侧菜单的页面查看器(导航抽屉),ios,objective-c,navigation-drawer,uipageviewcontroller,Ios,Objective C,Navigation Drawer,Uipageviewcontroller,我用的是侧菜单控制器,问题是这个菜单会从屏幕的任何一点出现,我希望它像Android版本一样,只有当你从屏幕的左开始滑动时才会出现,如果从任何其他点滑动,菜单不会出现 我想要这个,因为我在这个菜单里有一个页面查看器。 由于我是IOS新手,我查看了库代码,没有发现任何定义起始点的函数也试图修改消息 Pangesture意识到它不起作用 因此,我想向我推荐一个帮助或任何其他具有此选项的库。如果您遵循此库,那么我认为您也输入了此代码 In ViewDidLoad [self.view add

我用的是侧菜单控制器,问题是这个菜单会从屏幕的任何一点出现,我希望它像Android版本一样,只有当你从屏幕的左开始滑动时才会出现,如果从任何其他点滑动,菜单不会出现

我想要这个,因为我在这个菜单里有一个页面查看器。 由于我是IOS新手,我查看了库代码,没有发现任何定义起始点的函数也试图修改消息 Pangesture意识到它不起作用


因此,我想向我推荐一个帮助或任何其他具有此选项的库。

如果您遵循此库,那么我认为您也输入了此代码

In ViewDidLoad

    [self.view addGestureRecognizer:[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)]];

And 

- (void)panGestureRecognized:(UIPanGestureRecognizer *)sender
{
    // Dismiss keyboard (optional)
    //
    [self.view endEditing:YES];
    [self.frostedViewController.view endEditing:YES];

    // Present the view controller
    //
    [self.frostedViewController panGestureRecognized:sender];
}
用下面的代码替换上面的代码

Confirm UIGestureRecognizerDelegate Delegate protocol

@interface DEMONavigationController () <UIGestureRecognizerDelegate>

In ViewDidLoad

    UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftEdgeGesture:)];
    leftEdgeGesture.edges = UIRectEdgeLeft;
    leftEdgeGesture.delegate = self;
    [self.view addGestureRecognizer:leftEdgeGesture];}

And
- (void)handleLeftEdgeGesture:(UIScreenEdgePanGestureRecognizer *)gesture {

    if(UIGestureRecognizerStateBegan == gesture.state ||
       UIGestureRecognizerStateChanged == gesture.state) {
        [self.frostedViewController presentMenuViewController];


    }else{
        // DO nothing
    }
}
确认UIgestureRecognitzerDelegate协议
@接口DEMONavigationController()
在ViewDidLoad中
UIScreenedGepAgestureRecognitor*LeftedGeesture=[[UIScreenedGepAgestureRecognitor alloc]initWithTarget:self-action:@selector(HandleLeftedGe手势:)];
LeftedgeSture.edges=UIDirectedgeLeft;
leftedgegestrue.delegate=self;
[self.view addgesturecognizer:leftEdgeGesture];}
及
-(void)Handleftedge手势:(UIScreenedgepangestureRecognitor*)手势{
if(UIgestureRecognitizerStateStarted==手势.state||
UIgestureRecognitzerStateChanged==手势.state){
[self.frostedViewController presentMenuViewController];
}否则{
//无所事事
}
}

如果你遵循了这个库,那么我认为你也把这个代码放进去了

In ViewDidLoad

    [self.view addGestureRecognizer:[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)]];

And 

- (void)panGestureRecognized:(UIPanGestureRecognizer *)sender
{
    // Dismiss keyboard (optional)
    //
    [self.view endEditing:YES];
    [self.frostedViewController.view endEditing:YES];

    // Present the view controller
    //
    [self.frostedViewController panGestureRecognized:sender];
}
用下面的代码替换上面的代码

Confirm UIGestureRecognizerDelegate Delegate protocol

@interface DEMONavigationController () <UIGestureRecognizerDelegate>

In ViewDidLoad

    UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftEdgeGesture:)];
    leftEdgeGesture.edges = UIRectEdgeLeft;
    leftEdgeGesture.delegate = self;
    [self.view addGestureRecognizer:leftEdgeGesture];}

And
- (void)handleLeftEdgeGesture:(UIScreenEdgePanGestureRecognizer *)gesture {

    if(UIGestureRecognizerStateBegan == gesture.state ||
       UIGestureRecognizerStateChanged == gesture.state) {
        [self.frostedViewController presentMenuViewController];


    }else{
        // DO nothing
    }
}
确认UIgestureRecognitzerDelegate协议
@接口DEMONavigationController()
在ViewDidLoad中
UIScreenedGepAgestureRecognitor*LeftedGeesture=[[UIScreenedGepAgestureRecognitor alloc]initWithTarget:self-action:@selector(HandleLeftedGe手势:)];
LeftedgeSture.edges=UIDirectedgeLeft;
leftedgegestrue.delegate=self;
[self.view addgesturecognizer:leftEdgeGesture];}
及
-(void)Handleftedge手势:(UIScreenedgepangestureRecognitor*)手势{
if(UIgestureRecognitizerStateStarted==手势.state||
UIgestureRecognitzerStateChanged==手势.state){
[self.frostedViewController presentMenuViewController];
}否则{
//无所事事
}
}

试试这样的方法。在此库中:将此库中的“panGestureEnabled”设置为否。并在viewcontroller中从左到右实现您自己的手势。当它被调用时,打开你的边栏。试试这样的方法。在此库中:将此库中的“panGestureEnabled”设置为否。并在viewcontroller中从左到右实现您自己的手势。当它被调用时,打开你的侧边栏。