实现可以通过触摸拉伸和旋转的UIView

时间:2013-03-04 17:36:26

标签: iphone ios cocoa-touch uiview uigesturerecognizer

我正在尝试实现执行以下操作的矩形视图。当用户从左侧或右侧拖动矩形视图时,它将如下所示拉伸:

enter image description here

当用户在UIView上向上或向下拉动时,它会如下旋转:

enter image description here

想知道是否有人可以告诉我如何实现这一点。我不相信你可以用手势识别器来做到这一点。有谁知道吗?

更新:假设没有轮换,这实际上并不坏。您可以按用户向左或向右拖动的量拉伸它,或者按照它们拉动它的量来旋转它。但是,当视图旋转时,此方法不再有效,因为点数会发生变化。有关如何执行此操作的想法吗?

3 个答案:

答案 0 :(得分:0)

看看这些UIView方法。您的子类可以覆盖这些方法并执行您需要的操作。

touchesBegan:withEvent:, touchesMoved:withEvent:, touchesEnded:withEvent:, touchesCancelled:withEvent:

  • 如果您需要直接处理触摸事件,请实施这些方法。 (对于基于手势的输入,请使用手势识别器。)

答案 1 :(得分:0)

您可以使用手势识别器执行此操作。但是,当这些手势发生时,您需要告诉iOS如何处理视图。

您将在旋转手势识别器操作中添加的代码如下所示:

self.myView.transform = CGAffineTransform(CGAffineTranformIdentity, self.rotationRecognizer.rotation);
// Where myView is an outlet to your UIView
// rotationRecognizer is an outlet to your rotation gesture recognizer

答案 2 :(得分:0)

我有一个Github项目,展示了如何轻松使用每种类型的UIGesture,包括缩放调整和旋转。

检查捏合,旋转和同步部分。我想你会找到你正在寻找的东西。

https://github.com/EmperiorEric/UIGestures