我在iOS7上使用CGAffineTransformMakeTranslation時遇到問題。我使用CGAffineTransformMakeTranslation的視圖在運行iOS7和iOS8時處於不同的位置。爲什麼這是我做錯的?iOS7 - 爲什麼CGAffine轉換在iOS8上正常工作,但不在iOS7上正常工作?
我有一個觀點,我稱之爲「hud」,它是它的父視圖的長度和125.0高。我使用自動佈局,這裏是我的故事板的截圖,所以你可以看到我是如何設置約束的。容器視圖是照片的集合視圖。
我有「HUD」隱藏與馬上向下轉換,並且在選擇照片的時候會滑回成圖。
-(void)showHud:(BOOL)show
{
NSLog(@"Frame Height: %f", hud.frame.size.height);
if (show && !hudSelectionMode)
{
[UIView animateWithDuration:0.5 delay:0 options:0
animations:^{
hud.transform = CGAffineTransformMakeTranslation(0, 0);
hud.alpha = 0.8f;
}
completion:^(BOOL finished){
}
];
}
else if (!show && !hudSelectionMode)
{
[UIView animateWithDuration:0.5 delay:0 options:0
animations:^{
hud.transform = CGAffineTransformMakeTranslation(0, hud.frame.size.height);
hud.alpha = 0.8f; // will be 0.0 when not testing
}
completion:^(BOOL finished){
}
];
}
}
這裏的問題是 在iOS8上這個完美的作品的HUD是從一開始就隱藏起來,當選擇的圖像會向上滑動:在iOS7設備上運行時
然而hud不是我期望的那樣:
如果我註釋掉了 - (void)showHud中的所有代碼:(BOOL)顯示hud將坐在parentView的底部,我期望它在7和8上。
您最近是否在Interface Builder中啓用了AutoLayout或SizeClasses? – Fogmeister 2014-11-03 13:42:43
禁用自動佈局爲我解決這個問題 – 2015-01-13 15:15:41
我的經驗和@MikeBryant一樣 - 關掉自動佈局,恢復到老派的自動佈局解決了這個問題。 – hsoi 2015-02-02 23:16:17