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