gpt4 book ai didi

objective-c - 惊人的 NSTimer 火灾

转载 作者:行者123 更新时间:2023-11-29 04:37:34 25 4
gpt4 key购买 nike

我有四个运行良好的 NSTimer。唯一的问题是两个应该开火,然后另外两个应该在前两个的中间开火。这是我的代码:

   initTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector: @selector(initText) userInfo:nil repeats:YES];
animateTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector: @selector(textGlow) userInfo:nil repeats:YES];
initTimer1 = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector: @selector(initText1) userInfo:nil repeats:YES];
animateTimer1 = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector: @selector(textGlow1) userInfo:nil repeats:YES];

initText 和 initText1 方法创建一个具有延迟实例化的 UILabel,并将它们放置在屏幕上的同一位置。 textGlow 和 textGlow1 方法对文本进行动画处理,使其变大并逐渐消失。我希望 initText1 和 textGlow1 在 initText 和 textGlow 中间触发。例如,假设每个方法都需要 2 秒(我将动画持续时间设置为 2 秒)。我希望 initText 和 textGlow 触发,然后一秒钟后,initText1 和 textGlow1 触发。

谢谢。如果您需要我的任何其他代码来帮助回答问题,请询问。

----------编辑-------------

@MDT 可行,但有一个问题。我所做的是将上面的 initTimer1 和 animateTimer1 代码放置在名为 initTimer1Wrapper 和 animateTimer1Wrapper 的新函数中。然后我做了你的代码 [self PerformSelector:@selector(initText1Wrapper) withObject:nil afterDelay:1.0]; 并复制它,但将选择器更改为 animateText1Wrapper。发生的情况是 initText 和 textGlow 将按计划触发,然后 initTimer1 和 animateTimer1 将按计划触发一秒,但意外发生的情况是 initText 和 textGlow 没有完成剩余的一秒;动画就停止了。我相信这是因为它们是带有 [UIView beginAnimation:@"name"context:nil][UIView commitAnimations] 的 UIView 动画,并且超过 1 个 UIView 动画不能同时运行。

要解决这个问题,我应该使用核心动画(我对此一无所知)还是还有其他解决方案?谢谢。

----------编辑2-------------

此外,如果您知道这一点很重要,我将使用 UIGestureRecognizer 来消除此动画。像这样的东西:

if(screenIsTapped){
[initTimer invalidate];
[animateTimer invalidate];
[initTimer1 invalidate];
[animateTimer1 invalidate];
}

最佳答案

尝试在 initTexttextGlow 中放置类似的内容。

[self performSelector:@selector(initText1) withObject:nil afterDelay:1.0];

关于objective-c - 惊人的 NSTimer 火灾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868031/

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