[英]CGAffineTransformScale modified after device rotation
我認為我正在進行轉換
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);
}
這使它按照我的預期工作,但不是回到全屏,然后回到.8比例,我希望它從它的新轉換到正確的.8比例。
如果要將其還原為原始值,請嘗試將轉換設置為CGAffineTransformIdentity。
self.appContainer.transform = CGAffineTransformIdentity;
我認為你必須刪除所有使用.....的自動修復面具
[self.appContainer setAutoresizingMask:UIViewAutoresizingNone];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.