【发布时间】:2011-10-06 14:49:27
【问题描述】:
我正在开发一个简单的笔记/绘画应用程序。我有一个像纸/画布一样工作的视图控制器。在其中我想实现 UISwipeGestureRecognizer,例如,当用户快速想要显示菜单时,他或她可以向上滑动而不是点击我的“编辑”按钮,或者当他/她想要换纸时向左或向右滑动/注意。
问题是,当用户(用两根手指)滑动时,应用程序也会在同一方向上画一条短线。
我已经像这样实现了 UISwipeGestureRecognizer:
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];
recognizer.numberOfTouchesRequired = 2;
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
// Delegate method
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
return YES;
}
// Helper method for handeling swipes
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
if (recognizer.direction == UISwipeGestureRecognizerDirectionUp) {
[self enableEditingMode];
}
}
绘画机制在同一个控制器的以下方法中处理:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
上面的三个方法似乎在我的 UIGestureRecognizer 之前被调用。我试图制作一个 BOOL 变量,如果布尔变量为 YES,则禁用绘画代码。但这没有用。关于如何解决这个问题的任何其他想法都会很棒!
注意:我正在模拟器中进行滑动测试。也许这会影响它?
【问题讨论】:
标签: iphone objective-c ios