gpt4 book ai didi

ios - 如何使用 animateWithDuration 淡化标签的背景颜色

转载 作者:行者123 更新时间:2023-11-29 02:19:16 24 4
gpt4 key购买 nike

我正在尝试使用 animateWithDuration 淡化标签的背景颜色,但我的代码无法正常工作。这是我得到的:

.h(在@interface...)

IBOutlet UILabel *labelColor;

.m(在viewDidLoad方法中)

[labelColor setBackgroundColor:[UIColor colorWithRed:55/255.0 green:191/255.0 blue:122/255.0 alpha:0.3]];

if (labelColor.alpha >= 0.3) {
[UIView animateWithDuration:1 animations:^{
labelColor.alpha = 0.3;
labelColor.alpha = 1.0;
}];
} else if (labelColor.alpha == 1.0) {
labelColor.alpha = 0.3;
}

颜色显示为 0.3 alpha,但不会从 0.3 褪色到 1.0。我正在努力使标签的颜色在连续循环中从 0.3 淡化到 1.0,当它达到 1.0 时将 alpha 重置为 0.3。

感谢任何有关如何实现此目标的帮助。

最佳答案

您当前的代码存在一些问题:

(1) 你的 else 语句将永远不会被调用,因为如果 labelColor.alpha == 1.0 它也将是 >= .3

(2) 在动画 block 中同时使用 labelColor.alpha = 0.3;labelColor.alpha = 1.0; 意味着只有第二行(即 labelColor.alpha = 1.0;) 将决定动画

(3) 你没有按照自己的意愿设置循环

(4) 你还没有淡出动画

如果我真的理解你想要完成的是什么,你可以像这样连续淡入淡出整个 UILabel:

- (void)performLabelFade {
// If the label is faded out, fade it in
if (labelColor.alpha == .3) {
[UIView animateWithDuration:1 animations:^{
labelColor.alpha = 1.0;
} completion:^(BOOL finished) {
// Repeat the current method (i.e. like a loop)
[self performLabelFade];
}
}
// Else if the label is faded in, fade it out
else if (labelColor.alpha == 1.0) {
[UIView animateWithDuration:1 animations:^{
labelColor.alpha = 0.3;
} completion:^(BOOL finished) {
// Repeat the current method (i.e. like a loop)
[self performLabelFade];
}
}
}

关于ios - 如何使用 animateWithDuration 淡化标签的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28374250/

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