我认为我的问题可以概括为如何存储和重置视图的转换。但是也许解释我的情况可能会有所帮助。
如果我将下面的变换一个接一个地应用到视图中(就像我将此代码添加到开关或按钮一样)。我得到了我所期望的结果:比例在:原始视图大小的 0.55 倍的视图和原始比例的视图之间切换。也可以按我的意愿缩放 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 灵活边距使视图居中,而不是使用自动布局。也许我应该用另一种类型的计算来集中视图?
谢谢阅读!