我认为我的问题可以总结为如何存储和重置视图的变换。但是,解释我的情况可能会有所帮助。
如果我依次将以下变换应用于视图(例如,如果我将此代码添加到开关或按钮中),我会得到完全符合预期的结果:缩放在原始视图的大小上有效地切换至.55倍的视图,并且在其原始比例下的视图。也可以按照所需缩放sub-views of someView,就像我想要的那样,无限循环。完美的解决方案。
麻烦的是我想使用这个代码(或者类似的)在iOS设备进入横屏时缩放self.view的子视图,以适应横屏屏幕的子视图(并在竖屏时恢复原状)。它几乎能正常工作,但由于某种原因,与使用按钮调用变换的测试中产生圆形值相反,会产生渐进的奇怪值来输出被缩放的视图的框架。最终,在大约4次旋转后,子视图飞出了屏幕。我怀疑这与self.view改变形状有关,但当我记录self.view的框架时,它的形状非常可预测。
顺便说一下,我正在使用autoresizingMask灵活的边距来居中视图,而不是使用自动布局。也许我应该使用其他类型的计算来居中视图?
感谢您的阅读!
如果我依次将以下变换应用于视图(例如,如果我将此代码添加到开关或按钮中),我会得到完全符合预期的结果:缩放在原始视图的大小上有效地切换至.55倍的视图,并且在其原始比例下的视图。也可以按照所需缩放sub-views of someView,就像我想要的那样,无限循环。完美的解决方案。
//tranformScale 1
someView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.55, 0.55 );
//tranformScale 2
someView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0 );
麻烦的是我想使用这个代码(或者类似的)在iOS设备进入横屏时缩放self.view的子视图,以适应横屏屏幕的子视图(并在竖屏时恢复原状)。它几乎能正常工作,但由于某种原因,与使用按钮调用变换的测试中产生圆形值相反,会产生渐进的奇怪值来输出被缩放的视图的框架。最终,在大约4次旋转后,子视图飞出了屏幕。我怀疑这与self.view改变形状有关,但当我记录self.view的框架时,它的形状非常可预测。
顺便说一下,我正在使用autoresizingMask灵活的边距来居中视图,而不是使用自动布局。也许我应该使用其他类型的计算来居中视图?
感谢您的阅读!
someView.transform = CGAffineTransformIdentity;
来将其重置为无变换状态。这样更容易理解。 - David Rönnqvist