我在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