2015-10-18 5 views
3

Я хочу выяснить, как вымыть текст один за другим в UILabel.Текст UILabel исчезает один за другим

Например:

label.text = "ABCDEFG", я хочу, чтобы текст исчезать один за другим -> 'а', 'б', 'C', 'D', 'е ',' f ',' g 'исчезают соответственно.

Как я мог это сделать?

Спасибо за все ваши ответы, я хочу уточнить, что хочу, чтобы анимация исчезла, что-то вроде UIViewAnimationOptions.CurveEaseInOut.

Спасибо!

ответ

5

Используйте 2 ярлыка и многократно их выцветайте, удаляя символы каждого из каждого затухания.

  1. впервые показан с ABCDEFG второй скрытые с ABCDEF
  2. замирания первый выход и второй в
  3. первый скрытый с ABCDE второй показан с ABCDEF
  4. замирания сначала в и второй из
  5. и т.д.

Или используйте SDK для захвата изображений, чтобы создавать изображения вашей метки с различным текстовым контентом, а затем анимировать изображения через некоторые транситы на.

0

Вы можете сделать это с помощью NSTimer и удалить последнюю букву из строки ее вмешательства. Например, вы можете сделать что-то вроде этого:

Простой класс для замирания анимации текста

class TextFadeAnimation { 
    var text: String 
    var timer: NSTimer? 
    var block: ((text: String) -> Void)? 

    init(text: String) { 
     self.text = text 
    } 

    func startAnimation(resultTextBlock block: (text: String) -> Void) { 
     self.block = block 
     timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("fadeOut"), userInfo: nil, repeats: true) 
    } 

    func stopAnimation() { 
     if timer != nil { 
      timer!.invalidate() 
     } 
    } 

    @objc private func fadeOut() { 
     if count(text) > 1 { 
      text = text.substringToIndex(text.endIndex.predecessor()) 
      block!(text: text) 
     } else { 
      timer!.invalidate() 
      block!(text: "") 
     } 
    } 
} 

Пример использования в ViewController

class ViewController: UIViewController { 

    @IBOutlet weak var label: UILabel! 
    var textFadeAnimation: TextFadeAnimation? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     textFadeAnimation = TextFadeAnimation(text: "abcdefg") 
     textFadeAnimation!.startAnimation(resultTextBlock: { (text: String) -> Void in 
      self.label.text = text 
     }) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 
Смежные вопросы