ios - CGAffineTransformMakeScale 动画不工作

标签 ios objective-c iphone xcode animation

我有一个 View Controller ,我正在使用 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, View 就会被切掉而不是动画。如果当我将目标比例更改为 (0.001, 0.001) 时这还不够奇怪,那么无论 XCode 版本如何,它都可以很好地进行动画处理。关于为什么我不能使用 XCode 6 将动画设置为实际的 (0.0, 0.0) 比例有什么想法吗?

最佳答案

因此,在与 Apple 的开发人员交谈后,我得出的结论是,某些基础框架需要经常处理变换矩阵的逆矩阵,并且由于零矩阵没有逆矩阵,因此动画只是返回以避免崩溃。希望这篇文章对遇到类似情况的其他人有所帮助。

关于ios - CGAffineTransformMakeScale 动画不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25653192/

相关文章:

iphone - 获取 map 中点的坐标 - iPhone sdk

ios - 如何从我的 iOS 应用程序打开带有最近通话摘要的 iPhone 手机应用程序?

ios - 核心数据 - 管理上下文

ios - 如何在 Swift 中将文件写入位于 Apple 的文件应用程序中的文件夹

ios - 如何在swift中定义常量?

ios - 我应该下载 Controller 或数据类中的信息吗?

ios - 在ios中没有APNS服务器的情况下像推送通知一样发送通知,

objective-c - XCode 6.2 默认 View Controller

iphone - 检测 iPhone 中断类型

ios - Swift 中水平切换按钮的 UIcollectionview 列表