在iOS7上使用CGAffineTransformMakeTranslation时遇到问题。运行iOS7和iOS8时,我正在使用CGAffineTransformMakeTranslation的视图将转到另一个位置。为什么会这样,我在做什么错呢?
我认为我称其为“ hud”,即其parentView的长度和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)show中的所有代码,则平视显示器将位于parentView的底部,我希望它位于7和8上。
在iOS7上,您需要将转换值乘以设备的scaleFactor。在iOS8上,这似乎是自动完成的,但在iOS7上却没有。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句