gpt4 book ai didi

ios - Apple Watch 圆形进度(或径向弧进度)图像错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:51 26 4
gpt4 key购买 nike

我正在使用 WatchKit 为 Apple Watch 开发一个应用程序,我需要在录制音频时实现一个循环进度,类似于 Apple 演示。

我不知道 WatchKit 是否包含默认情况下执行此操作的功能,因此我创建了自己的图像(13 幅图像,持续 12 秒 [总共 209 KB]),我会使用计时器进行更改。

这是我的源代码:

开始/停止录制的按钮操作

- (IBAction)recordAction {
NSLogPageSize();
NSLog(@"Recording...");

if (!isRecording) {
NSLog(@"Start!");
isRecording = YES;

_timerStop = [NSTimer scheduledTimerWithTimeInterval:12.0
target:self
selector:@selector(timerDone)
userInfo:nil
repeats:NO];

_timerProgress = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(progressChange)
userInfo:nil
repeats:YES];
} else {
NSLog(@"Stop :(");
[self timerDone];
}

}

计时器结束或再次点击按钮时的操作

-(void) timerDone{
NSLog(@"timerDone");
[_timerProgress invalidate];
_timerProgress = nil;
[recordButtonBackground setBackgroundImageNamed:[NSString stringWithFormat:@"ic_playing_elipse_12_%d", 12]];
counter = 0;
isRecording = NO;
}

改变进度的方法

- (void)progressChange
{
counter++;
NSLog(@"%d", counter);
NSString *image = [NSString stringWithFormat:@"ic_playing_elipse_12_%d", counter];
[recordButtonBackground setBackgroundImageNamed:image];
NSLog(image);
}

这是一个显示错误的 gif。它开始显示但随机更改图像,直到它得到几秒钟。 (注意:我已经检查过第一张图片是否有正确的进度)

Screen recording that shows my bug

更新(其他解决方案):使用 startAnimating

有一种使用startAnimatingWithImagesInRange:duration:repeatCount显示循环进度的新方法

您需要为动画指定图像范围和持续时间。请参见下面的示例:

[self.myElement startAnimatingWithImagesInRange:NSMakeRange(0, 360) duration:myDuration repeatCount:1];

最佳答案

我相信这是 WatchKit 解释图像名称的方式的副作用。

以数字结尾的图像名称用于表示动画图像中的帧,因此“ic_playing_elipse_12_10”被解释为名为“ic_playing_eclipse_12_1”的图像的第一帧,当您希望第 10 个图像显示您的第一个图像时,就会显示第 10 个图像一个。

您应该能够只更改图像名称,这样数字就不会出现在图像名称的最后部分,它会修复它。

关于ios - Apple Watch 圆形进度(或径向弧进度)图像错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284104/

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