我有一个具有视图的视图,在删除它之前,我将使用UIView动画将其缩小到0。我解雇它的代码是:
[UIView animateWithDuration:_dismissAnimationDuration
delay:0.0
options:UIViewAnimationOptionCurveEaseIn
animations:^(void) {
_menuContainerView.transform = CGAffineTransformMakeScale(0.0, 0.0);
}
completion:^(BOOL finished){
if ([_delegate respondsToSelector:@selector(popUpMenuDidClose)])
{
[_delegate popUpMenuDidClose];
}
[self.view removeFromSuperview];
[self removeFromParentViewController];
}];
当从XCode 5构建到运行iOS 7和iOS 8的设备上时,这是非常完美的。但是,当我从XCode 6 (beta 6和beta 7)构建到iOS 8时,视图就不再是动画了。如果这还不够奇怪,当我将目标刻度更改为(0.001,0.001)时,不管XCode版本如何,它的动画效果都很好。对于为什么我不能用XCode 6动画到一个实际的(0.0,0.0)比例,有什么想法吗?
发布于 2014-10-07 15:46:18
因此,在与苹果公司的一位开发人员交谈后,我得到的理由是,一些基本框架需要经常处理转换矩阵的逆函数,而且由于零矩阵没有逆,所以动画只是为了避免崩溃而返回。希望这篇文章能帮助那些遇到类似情况的人。
发布于 2014-12-08 04:15:27
如果您可以接受,请将标度值设置为0.01,如下所示:
_menuContainerView.transform = CGAffineTransformMakeScale(0.01, 0.01);
https://stackoverflow.com/questions/25653192
复制相似问题