gpt4 book ai didi

ios - ios-如何计算UIView动画将占用多少内存?

转载 作者:行者123 更新时间:2023-12-01 19:18:36 25 4
gpt4 key购买 nike

我是IOS开发的新手。
在我的应用程序中,我有几幅正在制作动画的图像。
图像数量可能有所不同。

在ipad 2上运行时,动画效果很好。
在ipad 1上运行时,该应用程序会崩溃,并显示大量图像(20张以上),并显示内存警告。

我想提前计算动画需要的内存量。
根据此图,我可以计算出要播放动画还是跳过动画
到最终状态。

如何才能做到这一点?

编辑:

我当前的代码:

- (void)remix
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:
@selector(animationDidStop:finished:context:)];

self.currentStatus = canvas_status_animating;
NSMutableArray *circles = [[NSMutableArray alloc] init];

for (CircleView* view in self.subviews)
{
if(![view isKindOfClass:[CircleView class]])
continue;
[circles addObject:view];
}

[self animatePosition:circles];

[UIView commitAnimations];
}


-(void) animatePosition:(NSArray*)circles
{
int maxWidth = self.bounds.size.width;
int maxHeight = self.bounds.size.height;


for (CircleView* view in circles)
{
int selectedX = 0;
int selectedY = 0;
if ((arc4random()%200)+1 > 100)
{
selectedX = (arc4random() % maxWidth) + 1;
selectedY = (arc4random() % 200) + 1;
selectedY = (selectedY > 100) ? (maxHeight - selectedY) : selectedY;
}
else
{
selectedX = (arc4random() % 200) + 1;
selectedX = (selectedX > 100) ? (maxWidth - selectedX) : selectedX;
selectedY = (arc4random() % maxHeight) + 1;
}

view.frame = CGRectMake(selectedX - view.frame.size.width / 2,
selectedY - view.frame.size.height / 2,
view.frame.size.width,
view.frame.size.height);

}

}

最佳答案

您可以在此之前和之后调用此函数,并计算差值。

-(double)availableMemory
{
vm_statistics_data_t vmStats;
mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;
kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vmStats, &infoCount);

if (kernReturn != KERN_SUCCESS)
{
return NSNotFound;
}

return ((vm_page_size * vmStats.free_count) / 1024.0) / 1024.0;

}

关于ios - ios-如何计算UIView动画将占用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com