2016-11-09 9 views
0

В настоящее время у меня есть массив строк в моих swift и я отображая их в петле на UILabel:Как я могу исчезать и выходить из разных текстов на том же UILabel в Swift?

let greetings = ["Test1", "Test2", "Test3", "Test4"] 

override func viewDidLoad(){ 
    super.viewDidLoad() 
    Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(TutorialEntryPoint.update), userInfo: nil, repeats: true) 
} 

var i = 0 
func update() { 
    if(i==4){ 
     i=0 
    } 
    myLabel.text = greetings[i] 
    i += 1 
} 

Это работает, но каждый текст исчезает, и вдруг показывает - есть ли способ изменить его так что каждый текст исчезает/отображается гладко? Я думал об использовании animateWithDuration и модификации alpha, но я не уверен, как это сделать правильно.

+0

Вместо проверки 'i' вы также можете использовать' greetings [i% greetings.count] '. –

+0

@ HennyLee хмм, что именно вы имеете в виду? Извините, я просто учась быстро :) – user3766930

+1

С помощью 'greetings [i% greetings.count]' вы можете увеличить 'i', не беспокоясь о том, чтобы быть вне пределов. '100% greetings.count' совпадает с' 0' в вашем случае. Это потому, что '%' является модулем. Результатом будет остаток при делении. Например, «5% 3 = 2», что означает, что 2 - остаток, когда вы делите 5 на 3. –

ответ

2

Вы можете анимировать текст настройки на этикетке следующим образом:

UIView.transition(with: label, 
         duration: 0.25, 
         options: [.transitionCrossDissolve], 
         animations: { 
         label.text = "Your Text" 
}, completion: nil) 
1

Может попробовать что-то вроде этого

//inside viewDidLoad 
    let animation = CAKeyframeAnimation() 
    animation.keyPath = "opacity" 
    animation.values = [0, 1, 1, 0] 
    animation.keyTimes = [0, 0.1, 0.9, 1] 
    animation.duration = 2.0 //same as your timer 
    animation.repeatCount = Float.infinity 

    myLabel.layer.addAnimation(animation, forKey: "fade") 

не тестировал, так что, возможно, потребуется перенастройка, но ив использовал что-то вроде этого, чтобы исчезнуть что-то в и до того

 Смежные вопросы

  • Нет связанных вопросов^_^