我正在尝试将Swipe Gesture Recognizer添加到我的应用中,因此我可以向左或向右滑动以转到另一个视图控制器。我将对象拖动到我想要的viewcontroller,将其链接起来,所以当向右滑动时它应该带我到另一个viewcontroller。我运行模拟器,但滑动功能不会将我带到另一个视图。
创建新项目时,只需添加3个viewcontroller和滑动手势,我就可以在模拟器中滑动,它会将我带到另一个viewcontroller。但在我当前的应用程序中做同样的事情并没有做任何事情。
有什么想法吗?我试图玩启用/禁用状态,但仍然没有得到任何东西
答案 0 :(得分:5)
如果您对编写代码感到满意,请尝试此操作。
UISwipeGestureRecognizer *left = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(PerformAction:)];
left.direction = UISwipeGestureRecognizerDirectionLeft ;
[self.view addGestureRecognizer:left];
UISwipeGestureRecognizer *right = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(PerformAction:)];
right.direction = UISwipeGestureRecognizerDirectionRight ;
[self.view addGestureRecognizer:right];
现在执行以下操作:
-(void)PerformAction:(UISwipeGestureRecognizer *)sender {
if(sender.direction == UISwipeGestureRecognizerDirectionRight) {
NSLog(@"RIGHT GESTURE");
// Perform your code here
}
if(sender.direction == UISwipeGestureRecognizerDirectionLeft) {
NSLog(@"LEFT GESTURE");
// Perform your code here
}
}
如果你想在每个视图控制器上执行此操作,那么你必须设置一个智能逻辑来执行左侧滑动和扫描的特定任务。右键滑动,基于您当前的viewcontroller。
希望有所帮助。
答案 1 :(得分:2)
有时当识别器重叠时(例如当您使用带有滑动识别器的scrollView时),它可能会导致触摸被取消。请确保没有任何内容正在中断您的识别器。
答案 2 :(得分:0)
我遇到了同样的问题,并找到了一些可能的解决方案:
override func viewDidLoad() {
self.view.isUserInteractionEnabled = true
// configure your gestures ...
}