gpt4 book ai didi

ios - NSTimer 不应该触发

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:15:35 25 4
gpt4 key购买 nike

我有一个表格 View ,它被分成按字母顺序排列的部分。我在每个部分页脚的 UIImage View 中显示动画横幅,并且需要确定在单击 UIImage View 时显示哪个图像。我在调用 startAnimating 之前设置了一个计时器。计时器每 5 秒触发一次,与动画变化的速率相同,但计时器的触发速度要快得多。有时它会在 5 秒内发射 2 或 3 次。这是我启动计时器和动画的代码:

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {

...

imgAdBar = [[bannerView alloc]initWithFrame:CGRectMake(footer.frame.origin.x,footer.frame.origin.y,footer.frame.size.width,footer.frame.size.height)];

imgAdBar.image=[UIImage imageNamed:[NSString stringWithFormat:@"%@", [animationArray objectAtIndex:0]]];
[imgAdBar saveBannerArray:animationArray];
[imgAdBar setUserInteractionEnabled:YES];
imgAdBar.animationImages = images;
imgAdBar.animationDuration=[images count]*5;
imgAdBar.animationRepeatCount=0;
timerCount=0;
[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(timerRunning:) userInfo:nil repeats:YES];
[imgAdBar startAnimating];
[footer addSubview:imgAdBar];
footer.backgroundColor = [UIColor clearColor];

}
return footer;
}

这里是选择器:

-(void)timerRunning:(NSTimer*)theTimer
{
NSLog(@"timerCount=%d",timerCount);

imgAdBar.timerCount=timerCount;
if (timerCount==numAnimationImages) {
timerCount=0;
}
NSLog(@"currentImage=%@",[animationArray objectAtIndex:timerCount]);
timerCount++;
}

我计划使用该计时器为我的图像数组建立索引,以便我可以判断显示的是哪个。任何人都知道为什么它不应该在应该开火的时候开火?感谢您的帮助!

最佳答案

你必须使用 NSTimer 作为属性......由于 viewForFooterInSection 为许多部分调用了多次,因此您必须在重新初始化它之前使其无效,或者您必须检查是否为 null 以下是代码。无效:

    NSTimer *timer; // declare in ViewDidLoad
// code in viewForFooterInSection
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval: 0.5
target: self
selector: @selector(handleTimer:)
userInfo: nil
repeats: YES];

检查是否为零

if (timer == nil) {

timer = [NSTimer scheduledTimerWithTimeInterval: 0.5
target: self
selector: @selector(handleTimer:)
userInfo: nil
repeats: YES];
}

希望对您有所帮助..

关于ios - NSTimer 不应该触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10700317/

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