【问题标题】:Resize UIImage/UIImageView without keeping aspect ratio在不保持纵横比的情况下调整 UIImage/UIImageView 的大小
【发布时间】:2012-02-24 04:30:38
【问题描述】:

我有一个添加了 PinchGestureRecognizer 的 UIImageView。目前,捏合时图像可以很好地调整大小,但我希望能够在不保持纵横比的情况下调整图像大小。因此,如果用户水平捏合,图像视图的宽度会变大;如果他们垂直捏,高度会放大等等。

谁能给我一个提示我该怎么做?

【问题讨论】:

    标签: objective-c ios5 uiimageview uiimage


    【解决方案1】:

    编写一个需要两根手指在屏幕上的自定义手势识别器。
    一旦两个手指都在屏幕上,将它们的偏移量存储到一些 UIEdgeInsets 中的 imageView 的边框。

    在 touchesMoved 中,检查两个手指是否都在屏幕上:如果是,则通过在当前触摸位置应用 edgeInsets 来计算新帧。

    标题:click
    实现:click

    运行良好,感觉比我见过的其他实现更自然。

    【讨论】:

    • 非常感谢。我很感激!
    • 昨晚我给你发了一封电子邮件。显然这适用于模拟器,但无论出于何种原因都不适用于设备。你有什么线索吗?
    【解决方案2】:

    您需要自己进行触摸处理,因为UIPinchGestureRecognizer 仅支持一种没有水平或垂直捏合概念的比例。

    您可以创建自己的 UIGestureRecognizer 子类(请参阅 here for docs),它查看触摸点的水平和垂直分离以确定 2 个不同的比例。我会认为创建它应该相当简单。只需查看初始触摸点,然后当它们移动时,计算当前触摸间隔与触摸初始间隔在垂直和水平方向上的差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 2010-12-03
      • 1970-01-01
      • 2013-05-12
      • 2016-10-26
      • 2010-12-14
      • 2011-11-30
      • 2011-10-05
      相关资源
      最近更新 更多