gpt4 book ai didi

ios - UIImageView动画开始并出现内存不足警告

转载 作者:行者123 更新时间:2023-11-29 04:06:47 26 4
gpt4 key购买 nike

我的 ImageView 动画有问题。在我看来,有超过 10 个 View ,每个 View 都通过其标签值进行标识,并且我有 UIImageViewUIButton。当点击按钮时, View 的特定图像必须被动画化。如果有任何其他图像处于动画状态,则必须停止它。这是我的代码:

-(void)makeAnimation:(UIButton *)sender {

UIView *tagView=(UIView *)[self.view viewWithTag:sender.tag];
UIView *next=nil;
UIView *previous=nil;


NSLog(@"%d",sender.tag);
for (UIImageView * imageview in [tagView subviews]) {
if ([imageview isKindOfClass:[UIImageView class]]) {

if ([imageview isAnimating]) {
NSLog(@"Animation Happens");

}

else{

imageview.animationDuration=2.0;

imageview.animationImages=[animationArray objectAtIndex:sender.tag-1];
imageview.animationRepeatCount=2;
imageview.tag=sender.tag;
[imageview startAnimating];
}
}

}
next=(UIView*)[self.view viewWithTag:sender.tag+1];
previous=(UIView*)[self.view viewWithTag:sender.tag-1];
NSLog(@"NOT IDEA");

[self previousview:previous nextview:next];
}

-(void)previousview:(UIView *)previous nextview:(UIView*)next
{
for (UIImageView * imageview in [previous subviews]) {

if ([imageview isKindOfClass:[UIImageView class]]) {

[imageview stopAnimating];
NSLog(@"PRREVIOUS");

}

}

for (UIImageView * imageview in [next subviews]) {

if ([imageview isKindOfClass:[UIImageView class]]) {

[imageview stopAnimating];
NSLog(@"NEXT");

}
}
}

现在我的问题是,当我依次选择 4 个以上按钮时,我的应用程序崩溃并出现内存警告。

最佳答案

运行时使用配置文件查找泄漏的确切位置,并使用@autorelease{}手动处理内存像这样..

-(void)makeAnimation:(UIButton *)sender {
@autorelease{
UIView *tagView=(UIView *)[self.view viewWithTag:sender.tag];
UIView *next=nil;
UIView *previous=nil;


NSLog(@"%d",sender.tag);
for (UIImageView * imageview in [tagView subviews]) {
if ([imageview isKindOfClass:[UIImageView class]]) {

if ([imageview isAnimating]) {
NSLog(@"Animation Happens");

}

else{

imageview.animationDuration=2.0;

imageview.animationImages=[animationArray objectAtIndex:sender.tag-1];
imageview.animationRepeatCount=2;
imageview.tag=sender.tag;
[imageview startAnimating];
}
}

}
next=(UIView*)[self.view viewWithTag:sender.tag+1];
previous=(UIView*)[self.view viewWithTag:sender.tag-1];
NSLog(@"NOT IDEA");

[self previousview:previous nextview:next];
}
}

关于ios - UIImageView动画开始并出现内存不足警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15066795/

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