我有一个自定义 UIView。它初始化了两个矩形 UIBezierPaths,并且在 drawRect 中它只是填充了这两个路径。
这个视图被放置在一个按钮上。单击按钮时,会在 animateWithDuration 块内对其应用旋转:
icon.transform = CGAffineTransformMakeRotation(M_PI*-0.25);
这很好用。
再次单击该按钮时,我试图使视图旋转回其原始方向(反转旋转)。我努力了:
icon.transform = CGAffineTransformInvert(icon.transform);
icon.transform = CGAffineTransformMakeRotation(M_PI*0.25);
icon.transform = CGAffineTransformIdentity;
...以及许多其他变体,但它们似乎都不起作用。取而代之的是,视图被扭曲,直到它不再可见——有点拉伸到什么都没有。有时,重新应用第一个转换会将其恢复,但其他反转则不会。
我究竟做错了什么?