gpt4 book ai didi

iOS 图像 startAnimating 不是动画(大多数时候)

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

我有一个动画由于某种原因没有动画。

- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.hidden = YES;
self.nameLabel.text = [self.name uppercaseString];
self.gradient1.alpha = .9;
self.gradient1.image = [UIImage imageNamed:@"heart.png"];
self.gradient1.animationImages = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"gradiant1.png"],
[UIImage imageNamed:@"gradiant2.png"],
...
[UIImage imageNamed:@"gradiant26.png"], nil];
self.gradient1.animationDuration = .5;
self.gradient1.animationRepeatCount = 1;

[self updateStats:nil];

}

-(void)updateStats:(NSTimer*)timer{
Utilities *utility = [[Utilities alloc] init];
[utility getDataWithSSID:self.ssID completion:^(bool *finished, NSArray *objects) {
if (finished){
...
[self.gradient1 startAnimating];
}
self.twoSecTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self
selector:@selector(updateStats:)
userInfo:nil
repeats:NO];

}];

}

有时,即使计时器继续一遍又一遍地敲击,它也会动画一两次然后停止。其他时候它根本不动画。但是,我在 Storyboard上放置了几个占位符按钮,这些按钮与任何东西都没有绑定(bind),每当我按下其中一个按钮时,它就会在下一次计时器按下时动画(实际上,每当我按下屏幕时,即使我不有任何类型的手势识别器..)。另外,当我在这个 ViewController 中添加我想要做的所有其他垃圾时,它每隔一次被调用时就会动画一次。所以我认为这比我忘记的更深层次,所以设置一些属性。

最佳答案

将动画触发器移至该 View 实际可见的时刻可能是一个更好的主意 - 因此移至 viewDidAppear:

您创建递归计时器调度的方式也让我颤抖。我想它对你来说效果很好,但我绝对建议使用设置为 YESrepeats 标志。

- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.hidden = YES;
self.nameLabel.text = [self.name uppercaseString];
self.gradient1.alpha = .9;
self.gradient1.image = [UIImage imageNamed:@"heart.png"];
self.gradient1.animationImages = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"gradiant1.png"],
[UIImage imageNamed:@"gradiant2.png"],
...
[UIImage imageNamed:@"gradiant26.png"], nil];
self.gradient1.animationDuration = .5;
self.gradient1.animationRepeatCount = 1;
}

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//animate right away...
[self updateStats:nil];
//trigger new animations every two seconds
self.twoSecTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self
selector:@selector(updateStats:)
userInfo:nil
repeats:YES];
}

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self stopUpdatingStats];
}

-(void)stopUpdatingStats
{
[self.twoSecTimer invalidate];
}

-(void)updateStats:(NSTimer*)timer
{
NSLog(@"updating");
[self.gradient1 startAnimating];
}

关于iOS 图像 startAnimating 不是动画(大多数时候),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146994/

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