我希望当用户从左向右滑动时,标签计数器从 1 更新到 5。如果我滑动得很慢,它会很慢地工作,然后再快一点,但它不工作,对吗?还有其他方法可以实现吗?
我有这个代码:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];
if ((int)(currentPosition.x)%40 == 0 && counter < 5) {
counter++;
}
[label setText:[NSString stringWithFormat:@"%d", counter]];
}
最佳答案
您可以使用 UIPanGestureRecognizer
...它有开始状态、更改状态和结束状态,就像 touchEvents...
- (void)onDraggingLetter:(UIPanGestureRecognizer *)panGR {
if (panGR.state == UIGestureRecognizerStateBegan) {
} else if (panGR.state == UIGestureRecognizerStateChanged) {
} else if (panGR.state == UIGestureRecognizerStateEnded) {
}
}
它可能对你有帮助....
关于iphone - touchesMoved 工作速度不够快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099730/