Tag: 计时器

在Swift中实现键入文字效果

过去,在进行配音之前,视频游戏中的文字会在屏幕上键入。 通过逐段显示单词来模拟说单词所花费的时间,从而对文本产生了语音影响。 如今,效果仍在使用。 例如,Cleverbot是一种出于相同原因在文本上使用文字的AI,可以在没有语音时模拟语音。 该效果很容易实现,尽管要花点时间才能理解。 让我们一起完成所有步骤,让我们的程序说话! 计时器和ScheduledTimer 计时器是一种Swift工具,可让开发人员以一定的时间间隔遍历项目。 有多种使用Timer的方法,但现在让我们集中讨论ScheduledTimer函数。 Timer.scheduledTimer(withTimeInterval:TimeInterval,重复:Bool,块:(Timer)-> Void)) 计划计时器的三个参数是1)withTimeInterval,它确定计时器首次触发之前需要等待多长时间,以及每次计时器触发之间有多少时间,2)重复,以确定计时器是否触发一次以上,和3)块,这是一个闭包,它确定计时器触发时要确切执行的操作。 您应该注意,这种关闭也使我们可以访问该块中的计时器本身。 稍后将很重要。 现在,我们将使用带有以下参数的计时器: Timer.scheduledTimer(withTimeInterval:0.1,重复:true){(timer)in } 如果愿意,您可以从中创建一个变量,以访问其他作用域中的计时器。 但是我们现在没有用了,所以就别管它了。 现在我们有了一个计时器,它将每0.1秒触发一次。 有了一点技术知识,我们就继续前进。 获取字符串和字符 首先,让我们创建一个字符串,一个字符一个字符地将要输入的消息。 let message =“跟我来,看看预言中的事情…” 预言。 但是字符串只会带我们走那么远。 我们需要能够逐个字符地访问字符串。 大概有上千种方法可以做到,其中一半可能比我将要使用的方法效率更高,但是我们只需要将它们放入数组即可,所以…… 扩展字符串{ var characterArray:[Character] { var characterArray = [Character]() 用于self.characters中的字符{ characterArray.append(字符) } 返回characterArray } } 有了我们所有的工具,让我们开始吧。 写出代码块 让我们将计时器放入函数中。 对于这种情况,让我们将其作为UITextView的扩展。 我们要做的是 为字符数组和将要增加的当前索引创建值。 它将从0开始,并且每次迭代都会增加 创建我们上面所做的计时器 将characterArray [characterIndex]中的字符追加到UILabel的文本上 将characterIndex向上一级递增,以使添加到下一个迭代的字符将是数组中的下一个字符 […]

使用Swift 3.0建立倒数计时器

在这里,您将看到如何使用Swift 3.0为iOS构建一个简单的计时器。 我假设您对Swift编程语言,Xcode和Storyboard有基本的了解。 如果您需要基础知识方面的帮助或在情节 提要中 设置UI,请访问 www.raywenderlich.com, 以获得一些很棒的初学者教程。 计时器类 我们将使用Apple提供的Timer类。 在文档中定义了一个计时器,如下所示: “计时器等待直到经过一定的时间间隔,然后触发,将指定的消息发送到目标对象。” “例如,您可以创建一个 Timer 对象, 该 对象将消息发送到窗口,告诉窗口在一定时间间隔后进行更新。” 创建Timer类的目的是使它易于在特定时间触发动作(例如更新标签或触发方法)。 建立计时器 创建一个新的“ Single View Application”,为其命名,并将语言设置为Swift。 在情节提要中新建一个视图控制器,或使用预先存在的默认视图控制器。 添加标签。 (此标签将显示开始时间以及以秒,分钟和小时为单位的倒计时。) 添加三个按钮:“开始”,“暂停”和“重置”。 我的初始设置如下: 注意:在标签中设置为占位符文本的内容无关紧要,因为我们将在代码中提供标签文本。 我使它看起来像一个计时器,但它的工作原理与“标签”一词一样好。 但是,您为标签设置的字体将在程序运行时显示。 我选择Courier New,因为它是等距的(所有字母/数字都相同的宽度),并且不会随着数字递减而四处移动。 3.将标签和按钮从情节提要板连接到视图控制器类。 快捷方式:要从Storyboard中的助手编辑器中打开View Controller文件,请按住Option,然后在左侧的Navigation inspector / menu中单击类文件。 我假设您知道如何将标签和按钮连接到适当的类。 4.接下来离开情节提要,转到“视图控制器”类。 在timerLabel出口下,创建以下变量: var seconds = 60 //此变量将保留秒的起始值。 它可以是大于0的任何数量。 var timer = Timer() var isTimerRunning = […]

NSTimer

创建一个名为main的情节提要,并确保在项目的Deployment info中将其设置为主界面。 创建“开始”和“停止”按钮以及两个标签。 一个显示时间,另一个显示消息。 确保按钮是IBActions 。 在头文件中时,将计时器添加到接口中: { NSTimer * timer; int countInt; } 将我们刚刚分配的countInt整数设置为零,并为其分配标签。 使用以下方式设置计时器 ScheduledTimerWithTimeInterval:target:selector:userInfo:nil repeats:方法。 将间隔设置为1.0 (代表计数速度) ,现在将target和self设置为空,并将其设置为空。 userInfo:nil ,为YES 重复布尔值。 3.创建一个辅助计数器方法,暂时将其留空。 现在,我们可以返回到@selector并填写其余内容,如下所示: @selector(counter) 4.我们的stopCounter按钮应该能够做的就是停止计数。 可以用一种简单的方法做到这一点: [timer invalidate]; 5.让我们继续使用辅助计数器方法。 指定您要向上还是向下计数。 我把我的countInt + = 1 ; 目前。 设置标签 self.label.text = [NSString stringWithFormat:@”%i”,countInt]; 使计时器停止在零位置: [计时器无效]; 点击运行,看看它是否有效。 计数器应从零开始,以每秒一的速度加一。 凉。 现在让我们对其进行一些更改。 将startCouner:方法中的countInt设置为10,然后移至counter方法。 使其倒数: countInt-= 1; 然后让它在时间快到时向我们发出警告,并在时间到时打印出一些内容。 […]