用于更改主题的手势识别器
首先,我们必须创建自定义UIGestureRecognizer
。 我们必须认识到两个手指的移动。 在我们的识别器中,我们必须添加在触摸开始时执行的功能。 这确实是简单的功能。
现在,我们必须实现在用户移动手指时执行的功能。
在该功能中,我们将有关触摸的信息添加到两个集合中(仅当用户用两根手指触摸屏幕时)。
我们必须实现的下一个功能是当用户完成触摸时触发的功能。 在该函数中,我们必须检查用户是否做了我们期望的操作。
如您所见,这里有两个函数: twoFingersMoveUp
和twoFingersMoveDown
。 在这些功能中,我们正在验证两只手指的移动,如果我们识别出移动,则以state: ended
完成手势识别器。 如果我们不认识移动,则必须以state: failed
。
我验证运动的函数确实很简单(也许有点简单:-)。
我们必须实现的最后一个功能是reset
功能。 该功能在用户触摸之间触发。 我们必须清理在用户触摸过程中收集的所有东西。
现在,手势识别器中已包含所有内容。 我们可以将手势识别器与控制器连接起来。 为此,我们必须在viewDidLoad
函数中添加以下代码:
现在,当触摸结束时,我们的手势识别器将触发功能twoFingersGestureRecognizer
。 在该功能中,我们可以做任何我们想做的事情。 在我的情况下,我将更改主题(当用户向上移动手指时变亮或当用户向下移动手指时变暗)。
我们还有另一件事要做。 不幸的是,现在我们的手势识别器消耗了所有用户手势,因此,例如表格视图将不会对用户触摸做出反应。 这就是为什么我们必须在控制器UIGestureRecognizerDelegate
添加并实现一个功能(幸运的是最后一个功能)的原因:
当然,如果要使所有屏幕具有相同的行为,则必须将该代码放在一个公共控制器中。 您可以在我的GitHub上的iOS项目中查看一下。
姆恰楚斯基/ vcoin
通过在GitHub上创建一个帐户为vcoin开发做出贡献。 github.com