CGAffineTransformMakeScaleanimation无效

我有一个视图控制器的视图,我正在解雇使用UIViewanimation将其缩小到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的设备上时,这种function非常完美。但是,当我从XCode 6(testing版6和testing版7)构build到iOS 8时,视图只是切割而不是animation。 如果一旦我将目标缩放比例改为(0.001,0.001),就不够奇怪了,无论XCode版本如何,它都可以很好地animation。 任何想法,为什么我不能用XCode 6animation到一个实际的(0.0,0.0)比例?

所以在与苹果公司的开发人员交谈之后,我回想起来的原因是,一些基本框架需要经常使用变换matrix的倒数,并且由于零matrix没有反转,animation只是返回以避免崩溃。 希望这篇文章能够帮助那些遇到类似情况的人。

如果您可以接受,请将比例值设置为0.01,如下所示:

_menuContainerView.transform = CGAffineTransformMakeScale(0.01, 0.01);

参考