Как говорит @SeyyedParsaNeshaei, есть еще answer что дает «бегущей строки» типа прокрутки, однако, если то, что вы хотите (как вы говорите) одно слово, в то время, рассмотрим следующий маленький эскиз , который будет работать на Playground. Он в основном настраивает таймер, который меняет текст UILabel
на одно слово за раз.
import UIKit
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
class MyVC: UIViewController {
var tickTock: Int = 0
var myString = ""
var label: UILabel!
// Following block only needed in Playground.
// Normally you would wire up the label in IB.
{ didSet { self.view.addSubview(self.label) } }
override func viewDidLoad() {
// This next line only necessary in Playground.
// Normally, the view would be set from the StoryBoard
self.view = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 100, height: 60)))
super.viewDidLoad()
// "1" in the next line is the inter-word interval in seconds.
// Obviously you wouldn't hard-wire this.
let _ = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { _ in
let words = self.myString.components(separatedBy: " ")
var word = "<Nothing>"
if words.count > 0 {
self.tickTock = self.tickTock % words.count
if !words[self.tickTock].isEmpty {
word = words[self.tickTock]
}
}
self.label?.text = word
self.tickTock += 1
})
}
}
// Playground code to test:
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 60))
label.textColor = .yellow
label.textAlignment = .center
let myVC = MyVC()
myVC.myString = "May the source be with you"
myVC.label = label
PlaygroundPage.current.liveView = myVC.view
Чтобы просмотреть анимацию, выберите «Вид»> «Редактор помощника»> «Редактор ассистента» в меню «Детская площадка».
Для более полного решения, вы, вероятно, хотите посмотреть на components(separatedBy: CharactersSet)
, а не components(separatedBy: String)
, который я использовал - это зависит от того, как вы хотите, чтобы представить знаки препинания ...
См http://stackoverflow.com/ Вопросы/11686642/letter-by-letter-animation-for-uilabel –
Обычно не одобряют вопросы, не пытаясь что-то себе и не отправляя то, что вы пробовали. Я дал ответ («потому что это действительно очень легко»), но в следующий раз, * попробуй это сначала * - у немногих людей есть время на их руки, чтобы написать код для вас! – Grimxn
Привет, Гримкс, да, ты совершенно прав. Я совершенно новичок в кодировании, и я становлюсь немного ленивым. Цените свой ответ. –