将UIImageView轻按水平翻转将导致“反转”手势识别器,并且只能工作1x

问题描述 投票:0回答:1

我在相机应用中实现了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个回答
0
投票

嗯,我认为您的代码可以实现。

  1. 如果将转换设置为(-1 | 1),例如翻转x轴,则该翻转将应用于“原始”坐标系。换句话说,您不会将转换应用于现有的转换矩阵(例如再次翻转),而只是修改原始矩阵(即单位矩阵)。您可能想要的是:
    gestureView.transform = gestureView.transform.scaledBy(x: -1, y:1)
  1. 如果您尝试顺时针旋转视图,但此视图翻转,则可以从后面看到旋转,例如出现好像逆时针旋转。手势识别器仍然可以正常工作。
© www.soinside.com 2019 - 2024. All rights reserved.