我想在用户滑动屏幕时移动一些UILabel的位置 - 具体来说,将它们移动到用户滑动手指的相同距离。
我将如何检测并实施此功能?
由于
答案 0 :(得分:0)
覆盖touchesBegan:withEvent
和touchesMoved:withEvent:
。跟踪touchesBegan:withEvent
中的起始位置。如果重复调用touchesDragged
(在拖动过程中调用它)表明您的移动速度足以使操作轻扫而不是拖动,请使用起始位置与当前触摸位置之间的差异动画更改UILabels。
答案 1 :(得分:0)
您可以通过使用以下UIView方法来实现。
在touchesBegan中,您应该存储用户首次触摸屏幕的位置。因此,当触摸结束时,您可以识别向左或向右滑动。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
self.startPoint = [touch locationInView:self];
}
在touchesEnded方法上记录最终位置。通过比较这两个位置,您可以确定移动方向。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint endPosition = [touch locationInView:self];
if (startPoint.x < endPoint.x) {
// Right swipe
} else {
// Left swipe
}
}
我希望这会有所帮助。