2016-12-04 5 views
-1

Я пытаюсь сделать анимацию, как видно на картинке. В приведенном ниже примере кода символы после щелчка накладываются. Как сделать анимацию, как на картинке.UILabel Анимированное письмо

спасибо.

Letter animation

func letterTapAction(sender: UITapGestureRecognizer) { 
    for label in lettesLabel { 
     if sender.view == label { 
      copyLabelAndAnimate(fromLabel: label) 
     } 
    } 
} 

func copyLabelAndAnimate(fromLabel: UILabel) { 
    let copiedLabel = UILabel.init(frame: CGRect(x: fromLabel.frame.minX, y: fromLabel.frame.minY ,width: fromLabel.bounds.width, height: fromLabel.bounds.height)) 
    copiedLabel.text = fromLabel.text! 
    copiedLabelsTagCounter += 1 
    copiedLabel.tag = copiedLabelsTagCounter 
    copiedLabel.font = UIFont.init(name: "Noteworthy-Bold", size: 28.0) 
    view.addSubview(copiedLabel) 


    //UIView.removeFromSuperview(view.viewWithTag(101)!) 

    UIView.animate(withDuration: 0.2, animations: { 
     copiedLabel.frame.origin = CGPoint.init(x: self.view.frame.size.width/2 + CGFloat(self.spaceForCopiedLabels), y: self.view.frame.minY + CGFloat(15)) 
    }) 

    if lettersThatNeedLessSpace.characters.contains(copiedLabel.text!.characters.first!) { 
     spaceForCopiedLabels -= 8 
    } 

    spaceForCopiedLabels += 25 

} 
+0

Вы уже задали тот же вопрос вчера. –

+0

Да, я написал это вчера. Были написаны комментарии и ответы. Но я не могу ответить на этот вопрос. Я знаю, что это нарушение, но я должен. –

ответ

2

В общем:

  • Есть 1 письмо за ярлыком (так 10 из них в вашем примере) и управлять ими из класса в нижней зоне.
  • Не копируйте этикетки, а просто перемещайте их снизу в линию, а также меняйте backgroundColor и textColor.
  • Создайте класс, который управляет линией. Создайте метод в классе линии, который вычисляет центральную координату следующей буквы, когда ее можно будет добавить.

Когда пользователь вводит буквы в нижней части:

  • Ask линия объекта координаты следующего письма.
  • Преобразование этой координаты линии в координатное пространство нижней области.
  • Сделайте простую анимацию UIView от нижней области до новой координаты.
  • Когда анимация инициирована, сообщите строке, что новая буква идет. Это позволит объекту линии перемещать существующие буквы немного влево.
  • Когда анимация завершена, вы можете переместить постукиваемый UILabel из иерархии представления нижней области в строку.
Смежные вопросы