Iphone UIView动画性能问题
我正在使用UIView动画和presentModalViewController制作一些动画。通过模拟器,它看起来很好,但在设备上,它相当起伏不定。即使是相当基本的视图,例如带有UISearchBar的viewController、带有自定义颜色的UITableView(空)以及导航栏上的按钮,在通过presentModalViewController设置动画时也会出现抖动 我试着在应用加载时将视图加载到内存中,然后在按下按钮时显示视图,看看是否有差异,但结果相同。注意,我在代码中创建对象并将它们添加到ViewController视图中,我没有使用NIB 这里有几个视图,我正在制作的只是一个任务栏或alpha属性,这些视图可以很好地制作动画Iphone UIView动画性能问题,iphone,animation,uiview,Iphone,Animation,Uiview,我正在使用UIView动画和presentModalViewController制作一些动画。通过模拟器,它看起来很好,但在设备上,它相当起伏不定。即使是相当基本的视图,例如带有UISearchBar的viewController、带有自定义颜色的UITableView(空)以及导航栏上的按钮,在通过presentModalViewController设置动画时也会出现抖动 我试着在应用加载时将视图加载到内存中,然后在按下按钮时显示视图,看看是否有差异,但结果相同。注意,我在代码中创建对象并将它
有什么可能有用的技巧吗?这是在实际发布应用程序时可以解决的问题吗?许多UIKit对象的渲染速度非常慢(如UITextView和UISegmentedController),因此如果您尝试同时为它们设置动画,它们可能看起来很不稳定。动画的每一帧都需要重新绘制视图 您可以通过将这些慢速视图转换为UIImageView(可以更平滑地设置动画)来加快此过程。在执行动画之前,请尝试调用以下方法:
[self flattenView:yourView forDuration:0.5];
-(void)flattenView:(UIView *)view forDuration:(CGFloat)duration
{
UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, [[UIScreen mainScreen] scale]);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView * imgV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, view.frame.size.width, view.frame.size.height)];
imgV.image = img;
[view addSubview:imgV];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[imgV removeFromSuperview];
});
}
您没有在其中任何一个中实现drawRect,是吗?不是在简单的中。我有一个或两个,但我用的地方drawRect它动画很好。