【问题标题】:Flip an UIImageView horizontal on tap will result in "reversed" gesture recognizer and only works 1x点击时水平翻转 UIImageView 将导致“反转”手势识别器,并且只能工作 1x
【发布时间】:2020-06-04 07:37:26
【问题描述】:

我在我的相机应用中实现了像 instagram 这样的 giphy 贴纸。

我想用这个代码在点击时水平翻转贴纸:

@objc func tapGesture(_ gesture: UITapGestureRecognizer) {
    guard let gestureView = gesture.view else { return }
    gestureView.transform = CGAffineTransform(scaleX: -1, y: 1)
}

1:这只适用于一次。不能反向翻转。

2:我添加了几个手势识别器。当我翻转图像时,手势也会反转(向不同方向旋转等)

翻转和重新翻转图像并保持原始手势识别器行为的最佳方式是什么?

【问题讨论】:

    标签: swift uigesturerecognizer


    【解决方案1】:

    好吧,我认为您的代码可以按照实现的方式运行。

    1. 如果将转换设置为 (-1|1),例如您翻转 x 轴,然后此翻转将应用于“原始”坐标系。换句话说,您不对现有的变换矩阵应用变换(例如再次翻转和翻转),而只是修改原始矩阵(即单位矩阵)。 您可能想要的是:
        gestureView.transform = gestureView.transform.scaledBy(x: -1, y:1)
    
    1. 如果您尝试顺时针旋转视图,但该视图翻转,那么您会从后面看到旋转,例如它看起来好像是逆时针旋转。手势识别器仍按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多