当设置缩放的比例为0时Xcode会提示这个信息:
- <Error>: CGAffineTransformInvert: singular matrix.
从网上搜了些资料:
http://stackoverflow.com/questions/17145114/error- cgaffinetransforminvert-singular-matrix
http://m.blog.csdn.net/article/details?id=9365955
这个错误叫奇异矩阵,
引起的原因有三种:
1 [UIFont fontWithName:@"AFontName" size:0] 你把字体的 size设置为0了
2 你添加的view控件frame为0 ...
解决方法: 临界值不要为0,可以设置0.0001接近0的就可以,不然不会产生效果,动画消失后,需要把消失的view从父控件中移除
以下代码我设置缩放为0时,就收到了这个Error,而且设置缩放的dismissView并未消失。
- (void)animationForDismissView:(id<UIViewControllerContextTransitioning>)transitionContext {
// 1.获取消失的view
UIView *dismissView = [transitionContext viewForKey:UITransitionContextFromViewKey];
// 2.执行动画
[UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{
## 错误 presentedView.transform = CGAffineTransformMakeScale(1.0, 0.0);
## 正确 presentedView.transform = CGAffineTransformMakeScale(1.0, 0.001);
} completion:^(BOOL finished) {
// 动画执行完成移除消失的view
[dismissView removeFromSuperview];
// 告诉转场上下文动画已经结束
[transitionContext completeTransition:YES];
}];
}