iOS - 当用户滑动屏幕时如何执行操作?

时间:2014-04-07 21:01:08

标签: ios objective-c uiview

我想在用户滑动屏幕时移动一些UILabel的位置 - 具体来说,将它们移动到用户滑动手指的相同距离。

我将如何检测并实施此功能?

由于

2 个答案:

答案 0 :(得分:0)

覆盖touchesBegan:withEventtouchesMoved: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
    }
}

我希望这会有所帮助。