ios - 平移平移手势坐标

标签 ios objective-c uipangesturerecognizer

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

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

如何在不为每个案例添加巨大的 if/else 树的情况下做到这一点?我确信有一种非常简单的方法可以做到这一点,也许使用 for 循环,但我疲惫的大脑似乎无法理解它。

最佳答案

一些基本数学和削减精度怎么样。

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

通过添加一半的间隔来开始,您可以获得一些基本的舍入。例如9 向下舍入为 0,11 向上舍入为 20

关于ios - 平移平移手势坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15527757/

相关文章:

objective-c - 警告 : incompatible Objective-C types assigning superClass to subClass

ios - Pan 手势识别器 : Location of touch crashes once the pan gesture is released

ios - 使用 UIPanGestureRecognizer 的可拖动 View 中的 Action 元素导致 View 移动

ios - 如何使用 translationInView : with UIPanGestureRecognizer to have an invisible slider effect?

ios - 删除 dealloc 上对象的所有观察信息

ios - ios 中的寻呼机滑动 TabStrip

ios - SpriteKit - 背景图像被严重拉伸(stretch)

iphone - 后台位置管理器必须在appDelegate中吗? iOS系统

ios - 我可以向自己发送一个 iPhone 应用程序而不在 TestFlight 中安装吗

iphone - iOS 6 - (BOOL)shouldAutorotate 不被调用导航 Controller 推送 viewControllers