gpt4 book ai didi

ios - Ios开发中的定时动画

转载 作者:行者123 更新时间:2023-11-29 12:37:46 24 4
gpt4 key购买 nike

我正在寻找关于如何最好地为 IOS 应用程序实现卡拉 OK 文本效果的建议。我是 IOS 的新手,所以不熟悉所有各种动画 api 和库,如果我指出要学习哪些库的正确方向,我希望可以节省一些时间。

在 Javascript 中,我会使用一个数组,其中包含音轨的各种单词和时间,并使用 setTimeout 将数组中的下一个元素写入页面上的 div。我确实考虑过在 UIWebView 中使用这种方法,但在使用 UIWebview 进行了一些快速测试后,我对它看起来的流畅程度并不满意。

我确实遇到过一个非常简单的动画教程,它循环遍历一组图像,但它具有统一的动画持续时间,这在我的用例中不起作用,因为文字需要在屏幕上显示的时间长度会有所不同根据音频。这是我正在查看的示例代码。

NSArray *imageNames = @[@"win_1.png", @"win_2.png", @"win_3.png", @"win_4.png",
@"win_5.png", @"win_6.png", @"win_7.png", @"win_8.png",
@"win_9.png", @"win_10.png", @"win_11.png", @"win_12.png",
@"win_13.png", @"win_14.png", @"win_15.png", @"win_16.png"];

NSMutableArray *images = [[NSMutableArray alloc]init];
for (int i= 0; i < imageNames.count; i++) {
[images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]];
}

UIImageView *animationImageView = [[UIImageView alloc] initWithFrame: CGRectMake(60,95, 86, 193)];
animationImageView.animationImages = images;
animationImageView.animationDuration = 0.5;

[self.view addSubview:animationImageView];
[animationImageView startAnimating];

UIImageView *slowAnimationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(160, 95, 86, 193)];
slowAnimationImageView.animationImages = images;
slowAnimationImageView.animationDuration = 5;

[self.view addSubview:slowAnimationImageView];
[slowAnimationImageView startAnimating];

我在这里找到了那个教程:http://www.appcoda.com/ios-programming-animation-uiimageview/

提前感谢您就最好采用哪种方法提出任何建议。

最佳答案

因此,我已经实现了您描述的内容,并且我可以告诉您 CoreText 是您需要使用的 API。只有通过 CoreText 呈现,您才能以不同颜色呈现特定单词部分,并在特定时间应用颜色更改。但是,坏消息是这个 API 并不是很容易使用。您可以在以下 github 项目链接 github 的文件 MutableAttrString.m 和 AVOfflineComposition.m 中找到工作示例代码。 .您需要的最少代码在 MutableAttrString.m 文件中,它显示了如何使用 CoreText 正确实现您描述的逻辑。您可以尝试使用动画位图推出您自己的解决方案,但 CoreText 方法仅呈现文本,因此出于多种原因它要好得多。

关于ios - Ios开发中的定时动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798140/

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