我在使用CGAffineTransformMakeTranslation时遇到问题,它在iOS7和iOS8上运行时会将视图移动到不同的位置。这是为什么?我做错了什么吗?
我有一个名为“hud”的视图,其长度与其父视图相同,高度为125.0。我正在使用自动布局,下面是我的故事板截图,您可以看到我的限制条件设置。容器视图是照片的集合视图。
我通过向下变换来隐藏“hud”,当选择一张照片时,它将向上滑动进入视图。
然而,在iOS7设备上运行时,hud不在我期望的位置上:
如果我注释掉-(void)showHud:(BOOL)show中的所有代码,那么hud将停留在父视图的底部,这是我在7和8上都期望的位置。
我有一个名为“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从一开始就被隐藏了,当选择图片时会滑动出来:
![Hud Hidden](https://istack.dev59.com/qTdwQ.webp)
![Hud Showing](https://istack.dev59.com/WnT19.webp)
![Hud ios7 "hidden"](https://istack.dev59.com/U9P3M.webp)
![Hud ios7 showing](https://istack.dev59.com/tUWoo.webp)