【问题标题】:Implementing a UIView that can stretch and rotate with touches实现一个可以通过触摸进行拉伸和旋转的 UIView
【发布时间】:2013-03-04 17:36:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iphone ios cocoa-touch uiview uigesturerecognizer


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您可以使用手势识别器来做到这一点。但是,当这些手势发生时,您需要告诉 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
      

      【讨论】:

        【解决方案3】:

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

        查看“捏合”、“旋转”和“同时”部分。我想你会找到你正在寻找的东西。

        https://github.com/EmperiorEric/UIGestures

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多