- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在用户开始触摸屏幕、移动手指然后结束触摸时执行一些操作。触摸开始工作正常,也可以移动,但触摸结束运行有 0.5-1 秒的延迟。下面有一段代码:
-(id) init {
if (self = [super init]) {
//Adding a listener for catching touch events and get call back to selector method
[self addGestureListener:@selector(gestureCallback:)];
CCScene *scene = [CCScene node];
[scene addChild: self];
[[CCDirector sharedDirector] runWithScene:scene];
}
return self;
}
- (UIPanGestureRecognizer *)addGestureListener:(SEL)selector {
UIPanGestureRecognizer *recognizer = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:selector] autorelease];
[[[CCDirector sharedDirector] openGLView] addGestureRecognizer:recognizer];
return recognizer;
}
-(void) gestureCallback:(UIPanGestureRecognizer *) recognizer {
if (recognizer.state == UIGestureRecognizerStateBegan) {
NSLog(@"start");
} else if (recognizer.state == UIGestureRecognizerStateChanged) {
NSLog(@"moved");
} else if (recognizer.state == UIGestureRecognizerStateEnded) {
NSLog(@"ended");
}
}
在日志中(最后两行)我看到了这个:
2012-10-15 11:29:03.609 App[6169:c07] moved
2012-10-15 11:29:04.267 App[6169:c07] ended
有什么想法吗?
最佳答案
看看 GestureRecognizer 的 delaysTouchesEnded属性(property)。来自 Apple 的文档:
当此属性的值为 YES(默认值)并且接收器正在分析触摸事件时,窗口会暂停将 UITouchPhaseEnded 阶段的触摸对象传递到附加 View 。如果手势识别器随后识别出它的手势,这些触摸对象将被取消(通过 touchesCancelled:withEvent: 消息)。如果手势识别器无法识别其手势,窗口将在调用 View 的 touchesEnded:withEvent: 方法时传递这些对象。将此属性设置为 NO 可在手势识别器分析相同触摸时将 UITouchPhaseEnded 中的触摸对象传送到 View 。
关于delay - UIGestureRecognizerStateEnded 出现不必要的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12891827/
我在我的 UIImageVIew 上使用 -(IBAction)handlePanFrom:(UIPanGestureRecognizer *)recognizer 在我的代码中,我尝试使用两种状态:
我需要在用户开始触摸屏幕、移动手指然后结束触摸时执行一些操作。触摸开始工作正常,也可以移动,但触摸结束运行有 0.5-1 秒的延迟。下面有一段代码: -(id) init { if (s
我想要实现的只是在用户开始手势的点和结束执行此操作的点之间画一条线。我认为 UIGestureRecognizerStateEnded 是我需要的状态,但它被多次调用。如果有人能向我解释为什么会发生这
我正在尝试检测平移手势何时结束。在 Objective-C 下,我会做类似下面的事情: - (void)panGesture:(UIPanGestureRecognizer *)gesture {
我是一名优秀的程序员,十分优秀!