用于更改主题的手势识别器

首先,我们必须创建自定义UIGestureRecognizer 。 我们必须认识到两个手指的移动。 在我们的识别器中,我们必须添加在触摸开始时执行的功能。 这确实是简单的功能。

现在,我们必须实现在用户移动手指时执行的功能。

在该功能中,我们将有关触摸的信息添加到两个集合中(仅当用户用两根手指触摸屏幕时)。

我们必须实现的下一个功能是当用户完成触摸时触发的功能。 在该函数中,我们必须检查用户是否做了我们期望的操作。

如您所见,这里有两个函数: twoFingersMoveUptwoFingersMoveDown 。 在这些功能中,我们正在验证两只手指的移动,如果我们识别出移动,则以state: ended完成手势识别器。 如果我们不认识移动,则必须以state: failed

我验证运动的函数确实很简单(也许有点简单:-)。

我们必须实现的最后一个功能是reset功能。 该功能在用户触摸之间触发。 我们必须清理在用户触摸过程中收集的所有东西。

现在,手势识别器中已包含所有内容。 我们可以将手势识别器与控制器连接起来。 为此,我们必须在viewDidLoad函数中添加以下代码:

现在,当触摸结束时,我们的手势识别器将触发功能twoFingersGestureRecognizer 。 在该功能中,我们可以做任何我们想做的事情。 在我的情况下,我将更改主题(当用户向上移动手指时变亮或当用户向下移动手指时变暗)。

我们还有另一件事要做。 不幸的是,现在我们的手势识别器消耗了所有用户手势,因此,例如表格视图将不会对用户触摸做出反应。 这就是为什么我们必须在控制器UIGestureRecognizerDelegate添加并实现一个功能(幸运的是最后一个功能)的原因:

当然,如果要使所有屏幕具有相同的行为,则必须将该代码放在一个公共控制器中。 您可以在我的GitHub上的iOS项目中查看一下。

姆恰楚斯基/ vcoin
通过在GitHub上创建一个帐户为vcoin开发做出贡献。 github.com