我有一个显示为对话框的视图,当我希望它从父视图中删除时,我正在设置其不透明度.
我正在使用以下代码通过CABasicAnimation更改其不透明度:
CALayer *opacityOutLayer = sheetView.layer;
CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeOutAnimation.fromValue = [NSNumber numberWithFloat:1.0];
fadeOutAnimation.toValue = [NSNumber numberWithFloat:0.0];
fadeOutAnimation.duration = 0.255;
[opacityOutLayer addAnimation:fadeOutAnimation forKey:@"opacity"];
Run Code Online (Sandbox Code Playgroud)
这在模拟器中看起来很完美,但在设备上却不是很流畅.有没有办法缓存动画(比如使用UIView转换缓存:是)?
我确定这很简单,但在搜索文档和CALayer类信息后,我找不到任何缓存它的东西.
我确信这有一个简单的答案,但它现在开始惹恼我了!
我有一个iAd集成到我的应用程序中,它出现并在我实现它的屏幕上工作.该应用程序使用NavigationController在多个屏幕之间移动,但iAd仅在其中一个屏幕上.通过我的应用程序从头到尾几次移动后,我在GDB中显示一条消息:
Too many active banners (11). Creation of new banners will be throttled.
该应用程序然后崩溃.
我已经尝试查看Apple文档并在Google上搜索,但无法找到问题的解决方案.
如果有人知道如何解决这个问题,那肯定会让我发疯!谢谢.