首页 > 解决方案 > 在swift ios中将视图旋转角度重置为零

问题描述

我能够将 UIView 旋转 90 度并且还能够获得旋转角度。

需要实现--->将 myView 旋转角度值重置为 0,但视图位置/方向不应转到 UI 上的先前旋转/位置值,然后如果我旋转它必须从相同的位置/方向开始旋转,并且它的旋转角度需要从0开始。 在此处输入图像描述

我通过点击屏幕下方的旋转按钮将视图旋转了 90 度。 在此处输入图像描述

这是实现代码

    @IBOutlet weak var myView: UIView!
@IBAction func rotateBtn(_ sender: Any) {
    myView.transform = myView.transform.rotated(by: .pi/2)
    getRotateAngles()
}
func getRotateAngles() {
    let radians = atan2(myView.transform.b, myView.transform.a)
    var degrees = radians * 180 / .pi
    degrees.round()
    let realDegrees = degrees >= 0 ? abs(degrees) : 360 + degrees
    print("Degrees:: \(realDegrees)")
}
@IBAction func saveTapped(_ sender: Any) {
    myView.transform = .identity //need to implement--->reset myView rotation angle value to 0  but view position/direction should not go previous rotation value on UI and then if i rotate it has to start rotate from same position/direction and it's rotation angle need to start from 0.
}

在这里,我可以打印 0、90、180、270、0 的视图旋转度数.....

点击保存时如何将视图旋转值重置为 0。

如果视图旋转 90 度并点击保存视图,则进入 UI 部分将在 UI 上相同,但度数值应从 0 开始。

如果我保持转换身份 myView 正在改变它在 UI 上的位置,这就是问题所在。我不想改变它在 UI 上的位置/位置,但是当 saveTapped 时只有视图度数应该从 0 开始。

例如:我旋转了视图,它给出了度数 0、90、180、270、0... 要求是我旋转了视图,它打印了度数 90。 saveTapped 然后 myView 应该在相同的位置/相同的位置,UI 上没有变化。现在,当我再次旋转时,它必须打印度数 0、90、180、270、0....但在这种情况下 saveTapped 并且视图已经旋转了 90 度

提前致谢。

标签: iosswiftxcodeuiviewswift4.2

解决方案


推荐阅读