gpt4 book ai didi

iphone - 使用 NSTimer 显示像汽油泵表一样动画的秒表计时器

转载 作者:行者123 更新时间:2023-12-03 19:43:38 24 4
gpt4 key购买 nike

我是iOS开发新手。当我按下秒表开始按钮时,我想显示计时器,如计数器 token 效果。我附上了图片供您引用。我已经完成了显示秒和分钟,但我不知道,如何动画自动滚动效果?我怎样才能做到这一点?

当计数器移动时,它不应该从一个数字跳到另一个数字,而应该平滑地从一个数字移动到下一个数字,就像汽油泵流量计一样。谢谢 Default state

start 1

enter image description here

enter image description here

最佳答案

我以前做过类似的事情 - 这段代码不一定干净,但它可以完成工作。

您想在 .h 文件中创建两个UILabel:

IBOutlet UILabel *figureLabel1;
IBOutlet UILabel *figureLabel2;

然后您要创建一个 BOOL,以便我们可以知道哪个 UILabel 对用户可见。

BOOL firstLabel;

因此,让我们想象一下,初始标签(显示数字 1)是 figureLabel1, future 要显示的 UILabel(显示数字 2)是 figureLabel2 。然而,当计数器加一时,figureLabel2 就会向上移动并取代 figureLabel1 的位置。然后,当 figureLabel1 隐藏时,当 figureLabel1 可见时,它会取代 figureLabel2

看这里:

    // Check what label is showing
if (firstLabel == YES) {

// Following code the hide and move the figureLabel1

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate: self]; //or some other object that has necessary method
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];

// Slowing fade out the figureLabel1
[figureLabel1 setAlpha:0];

// Move the figureLabel1 up and out of the way
[figureLabel1 setFrame:CGRectMake(20, 108, 287, 55)];

[UIView commitAnimations];

// Following code the show and move the figureLabel2

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];

// Slowing fade in the figureLabel2
[figureLabel2 setAlpha:1];

// Move the figureLabel2 up and into position
[figureLabel2 setFrame:CGRectMake(20, 141, 287, 55)];

[UIView commitAnimations];

// Update BOOL for next label
firstLabel = NO;

} else {
// Exactly the same but opposite

}

正如我所说,这并不漂亮,但它显示了基本概念。祝一切顺利!

关于iphone - 使用 NSTimer 显示像汽油泵表一样动画的秒表计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17314544/

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