gpt4 book ai didi

ios - UIView 动画自动反转和重复不起作用

转载 作者:行者123 更新时间:2023-11-28 17:53:10 26 4
gpt4 key购买 nike

我想用闪烁动画更改 UILabel 的文本。文本应该是黑色的“text1”,消失然后变成红色的“text2”,反之亦然。这是我的代码

#import "ViewController.h"
#import <QuartzCore/QuartzCore.h>

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self performSelector:@selector(combineAnimations) withObject:self afterDelay:0.0];
self.label.textColor = [UIColor blackColor];
self.label.text = @"text1";

[self animateView];
}

- (void) animateView {
[UIView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat |UIViewAnimationOptionCurveEaseInOut
animations:^{
self.label.text = @"text2";
self.label.textColor = [UIColor redColor];
}
completion:nil];
}

我错过了什么?

最佳答案

在完成 block 中使用两个相互调用的方法。您还可以调整快速淡入或淡出……这比简单的“眨眼”更不刺耳。如果你想要眨眼,没有时间间隔,只需将延迟设置为 0.0。同样,您可以调整其中的 alpha 以获得淡入淡出效果。

- (void) animateView {

self.label.text = @"text2";
self.label.textColor = [UIColor redColor];
[UIView animateWithDuration:.5
delay:1.0
option:UIViewAnimationOptionCurveEaseInOut
animations:^{
self.label.alpha = 1;
}
completion:{
[self animateViewReverse];
}];
}

- (void) animateViewReverse {

self.label.text = @"text1";
self.label.textColor = [UIColor blackColor];
[UIView animateWithDuration:1.0
delay:1.0
option:UIViewAnimationOptionCurveEaseInOut
animations:^{
self.label.alpha = 1;

}
completion:{
[self animateView];
}];
}

您似乎有点困惑的一件事是为标签的文本设置动画。您实际上并没有为文本字符串设置动画,只是像 alpha、大小、位置这样的东西。因此,在您的情况下,您可以在设置动画之前更改颜色和文本字符串,只需使用动画作为触发下一个动画/反转的方式——它还内置了稍后用于更细微动画(除了简单的眨眼)的功能。

如果您想在完全不使用动画的情况下执行此操作,您可以简单地创建两个方法,每个方法都以一种方式设置文本,然后延迟调用另一个方法,例如:

[self performSelector:@selector(animationReverse) withObject:nil afterDelay:2];

关于ios - UIView 动画自动反转和重复不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24439501/

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