Ios 如何使UIImageView动画节能?

Ios 如何使UIImageView动画节能?,ios,animation,uiimageview,profiling,Ios,Animation,Uiimageview,Profiling,因此,我在代码中使用了这个方法,它在我的应用程序中显示了一个非常好的加载程序。我被告知这样做的最好方法是使用UIImageView 我设置了所有参数,我想我已经涵盖了我需要的所有内容。加载程序在我的应用程序的后台继续“旋转”,相应的UI元素根据我需要显示加载程序的时间(在UITableView的情况下)调整其alpha 然而,当我在iOS 7上进行测试并分析能量诊断和时间分析时,我发现这会大大降低应用程序的性能。有没有办法让这更有效 - (void)displayLoadingCircle:(B

因此,我在代码中使用了这个方法,它在我的应用程序中显示了一个非常好的加载程序。我被告知这样做的最好方法是使用UIImageView

我设置了所有参数,我想我已经涵盖了我需要的所有内容。加载程序在我的应用程序的后台继续“旋转”,相应的UI元素根据我需要显示加载程序的时间(在UITableView的情况下)调整其alpha

然而,当我在iOS 7上进行测试并分析能量诊断和时间分析时,我发现这会大大降低应用程序的性能。有没有办法让这更有效

- (void)displayLoadingCircle:(BOOL)display {

    UIView *placeholderView = [[UIView alloc] initWithFrame:self.view.bounds];
    UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(94, 240, 125, 125)];
    [animatedImageView setContentMode:UIViewContentModeScaleToFill];
    [animatedImageView setAlpha:0.7f];

    animatedImageView.animationImages = [NSArray arrayWithObjects:
                                         [UIImage imageNamed:@"loader-1 (dragged).png"],
                                         [UIImage imageNamed:@"loader-2 (dragged).png"],
                                         [UIImage imageNamed:@"loader-3 (dragged).png"],
                                         [UIImage imageNamed:@"loader-4 (dragged).png"],
                                         [UIImage imageNamed:@"loader-5 (dragged).png"],
                                         [UIImage imageNamed:@"loader-6 (dragged).png"],
                                         [UIImage imageNamed:@"loader-7 (dragged).png"],
                                         [UIImage imageNamed:@"loader-8 (dragged).png"],
                                         [UIImage imageNamed:@"loader-9 (dragged).png"],
                                         [UIImage imageNamed:@"loader-10 (dragged).png"],
                                         [UIImage imageNamed:@"loader-11 (dragged).png"],
                                         [UIImage imageNamed:@"loader-12 (dragged).png"],
                                         [UIImage imageNamed:@"loader-13 (dragged).png"],
                                         [UIImage imageNamed:@"loader-14 (dragged).png"],
                                         [UIImage imageNamed:@"loader-15 (dragged).png"],
                                         [UIImage imageNamed:@"loader-16 (dragged).png"],
                                         [UIImage imageNamed:@"loader-17 (dragged).png"],
                                         [UIImage imageNamed:@"loader-18 (dragged).png"],
                                         [UIImage imageNamed:@"loader-19 (dragged).png"],
                                         [UIImage imageNamed:@"loader-20 (dragged).png"],
                                         [UIImage imageNamed:@"loader-21 (dragged).png"],
                                         [UIImage imageNamed:@"loader-22 (dragged).png"],
                                         [UIImage imageNamed:@"loader-23 (dragged).png"],
                                         [UIImage imageNamed:@"loader-24 (dragged).png"],
                                         [UIImage imageNamed:@"loader-25 (dragged).png"],
                                         [UIImage imageNamed:@"loader-26 (dragged).png"],
                                         [UIImage imageNamed:@"loader-27 (dragged).png"],
                                         [UIImage imageNamed:@"loader-28 (dragged).png"],
                                         [UIImage imageNamed:@"loader-29 (dragged).png"],
                                         [UIImage imageNamed:@"loader-30 (dragged).png"], nil];
    animatedImageView.animationDuration = 0.55f;
    animatedImageView.animationRepeatCount = 0;
    [animatedImageView startAnimating];
    [placeholderView addSubview:animatedImageView];
    [self.view insertSubview:placeholderView belowSubview:_tweetTable];
    self.placeholderView = placeholderView;

    _tweetTable.alpha = 0.0f;

}

原来我的帧速率太高了,60帧每秒,这使得iPhone做了太多的工作。将持续时间减少到30帧时的1.0f,将每秒帧数减少到30 fps,这解决了我的问题。

这是一个动画,为了正确显示,我需要帧。54.5多fps可能也有点高…我还没有尝试过,1.0f是最好的?您的帧速率太高了,请尝试将其降低到30 fps,或者更好,到15。。。如果它必须是54.5,那么你必须接受电池损耗,尽管我高度怀疑它需要超过25。。。如果将持续时间设置为1,则动画速度会变慢,但设备将完成几乎一半的工作…让我们来看看。