我认为我正在执行转换
originalTransform = self.appContainer.transform;
self.appContainer.transform = CGAffineTransformMakeScale(.8, .8);
如果我不旋转设备,我可以使用
self.appContainer.transform = CGAffineTransformScale(originalTransform, 1, 1);
不幸的是,如果我旋转设备,视图的变换矩阵会被视图旋转修改并破坏原始比例。如果我在旋转后撤消比例尺,我将UIView
无法恢复到原来的全尺寸。
我确定我需要在原始转换矩阵和新转换矩阵之间进行计算,但我不确定如何执行此操作。为了完成这项工作,我唯一能做的就是在旋转之前将比例恢复为 1
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
self.appContainer.transform = CGAffineTransformScale(originalTransform, 1, 1);
}
然后用新修改的变换重新缩放它
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
self.appContainer.transform = CGAffineTransformMakeScale(.8, .8);
}
这使它按我的预期工作,但不是回到全屏,然后回到 0.8 比例,我希望它从新的转换到正确的 0.8 比例。