- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UIRotationGestureRecognizer 来旋转图像。我想将旋转角度从弧度转换为度数,因为我可以更好地思考度数。我在堆栈和其他来源找到了一个解决方案,但由于某种原因该解决方案似乎不起作用
例如,当我逆时针旋转图像约 45 度时,从公式中得到的度数值约为 -0.15???
@objc func handleImageRotation(sender:
UIRotationGestureRecognizer){
guard sender.view != nil else{return}
if sender.state == .began || sender.state == .changed {
// rotation enacted
imageView.transform = imageView.transform.rotated(by: sender.rotation)
rotationAngleRads = sender.rotation
rotationAngleDegs = rad2Deg(radians: rotationAngleRads)
print("Degrees: \(rotationAngleDegs!)")
sender.rotation = 0
}
}
// Convert Radians to Degress
private func rad2Deg(radians: CGFloat) -> Double{
let angle = Double(radians) * (180 / .pi)
return Double(angle)
}
最佳答案
您的主要问题是您正在重置手势的rotation
属性。你不应该那样做。来自文档:
The rotation value is a single value that varies over time. It is not the delta value from the last time that the rotation was reported. Apply the rotation value to the state of the view when the gesture is first recognized—do not concatenate the value each time the handler is called.
因此,请删除 sender.rotation = 0
行。
因此,您需要修复如何将变换应用到 ImageView 。
替换:
imageView.transform = imageView.transform.rotated(by: sender.rotation)
与:
imageView.transform = CGAffineTransform(rotatationAngle: sender.rotation)
这将应用完整的旋转,而不是尝试增加当前的旋转。
关于ios - 使用 UIRotationGestureRecognizer 将弧度转换为度数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56995017/
我正在尝试为 UIImageView 实现 UIRotationGestureRecognizer。 UIRotationGestureRecognizer *rotateGesture = [[UI
我正在使用 UIRotationGestureRecognizer 来旋转图像。我想将旋转角度从弧度转换为度数,因为我可以更好地思考度数。我在堆栈和其他来源找到了一个解决方案,但由于某种原因该解决方案
我正在使用 UIRotationGestureRecognizer 来旋转 UIImageView。通过将所有小的旋转更改添加到 CGFloat,我尝试计算 UIImageView 的总旋转。它确实很
如何在 iOS SDK 中用两个手指触摸旋转 UIImageView..我知道这很简单但是因为我是这项技术的新手所以无法理解... 如何使用 UIRotationGestureRecognizer 来
当使用 UIRotationGestureRecognizer 时,旋转被识别但它会多次触发 Action 。这是我的代码: override func viewDidLoad() { sup
我有一个显示 ImageView 的 ScrollView 。我正在尝试处理 ImageView 上的 UIRotationGestureRecognizer。我获取旋转事件并对其应用所需的变换。图像
申请 UILongPressGestureRecongnizer一方面, 检查下面的代码以供引用.. @interface ViewController () { UIRotationGes
使用以下方法翻转 View : self.transform = CGAffineTransformMakeScale(-1, 1); // self is an UIView 要旋转此 View
我想要一个 UIImageView在 UIScrollView 内旋转但是当我尝试缩放/取消缩放时,我的旋转会回到 0。 这是我的轮换代码: - (void)rotateImage:(UIRotati
我正在尝试这两种方法来移动和旋转 UIView。这两种方法单独工作,但如果我旋转然后移动 UIView,它就会消失。 - (void) touchesMoved:(NSSet *)touches wi
我尝试使用手势缩放和旋转 UIImageView。我在 Internet 上看到了几个示例并且我已经实现了它,但是它不能一起工作。 - (void)viewDidLoad { [super v
我在 iOS5 中工作,显然我应该能够使用 scrollView.pinchGestureRecognizer 控制或至少制服 UIScrollView 的内部捏合手势识别器。 但是,我的代码似乎不起
我用UIPinchGestureRecognizer UIPanGestureRecognizer & UIRotationGestureRecognizer 和UILabel 来实现Instagra
在 iOS 上的现代用户界面中,在单个 View 上实现多个 UIGestureRecognizers 通常很有用,以便为模拟现实世界的显示对象提供更真实的行为。 例如,您可能希望既能在屏幕上拖动 V
我正在我的应用程序中实现拖放/调整大小/旋转标签。到目前为止,除了 UIRotationGestureRecognizer 手势外,一切正常。更具体地说,它不适用于 UIPinchGestureRec
我是一名优秀的程序员,十分优秀!