我认为我正在执行转换

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比例尺,而是希望从新的转换方式转换到正确的.8比例尺。

最佳答案

如果要将其还原为原始格式,请尝试将转换设置为CGAffineTransformIdentity。

self.appContainer.transform = CGAffineTransformIdentity;

09-11 13:41