翻译Pan Gesture坐标

时间:2013-03-20 15:25:52

标签: ios objective-c uipangesturerecognizer

我已向包含数字的UILabel添加了平移手势。当用户向上或向下平移时,我希望数字上/下。我有这个工作正常 - 平移24坐标减少了24,等等。

我现在需要做的是使数字仅以20个坐标的间隔递增 - 因此,当坐标在50到70之间时,当坐标在100和100之间时,数字会增加50。 120,数字增加100,依此类推。

如果不为每个案例添加巨大的if/else树,我该怎么做?我确信有一个非常简单的方法,可能使用for循环,但我疲惫的大脑似乎无法绕过它。

2 个答案:

答案 0 :(得分:1)

如何进行一些基本的数学运算并削减精度。

static NSInteger BasicNormalize(CGFloat input, CGFloat interval)
{
  NSInteger units = (input + interval / 2.f) / interval;
  return units * interval;
}

通过添加一半的间隔开始,您将得到一些基本的舍入。例如9轮到0轮和11轮到20轮

答案 1 :(得分:0)

您可以规范化该值。试试这段代码:

        CGPoint loc = [sender locationInView:self];

        int y = (int)loc.y / 20;
        y = y * 20;
        myValue += y;