我已向包含数字的UILabel
添加了平移手势。当用户向上或向下平移时,我希望数字上/下。我有这个工作正常 - 平移24坐标减少了24,等等。
我现在需要做的是使数字仅以20个坐标的间隔递增 - 因此,当坐标在50到70之间时,当坐标在100和100之间时,数字会增加50。 120,数字增加100,依此类推。
如果不为每个案例添加巨大的if/else
树,我该怎么做?我确信有一个非常简单的方法,可能使用for
循环,但我疲惫的大脑似乎无法绕过它。
答案 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;