Ios UILabel动画字母
我正试图制作一个如图所示的动画。在我给出的示例代码中,单击后的字符被覆盖。我怎样才能制作像图中那样的动画 多谢各位 一般而言:Ios UILabel动画字母,ios,swift,animation,swift3,uilabel,Ios,Swift,Animation,Swift3,Uilabel,我正试图制作一个如图所示的动画。在我给出的示例代码中,单击后的字符被覆盖。我怎样才能制作像图中那样的动画 多谢各位 一般而言: 每个标签有1个字母(在你的例子中有10个),并从底部区域的类中管理它们 不要复制标签,只需将标签从底部移动到行,同时更改backgroundColor和textColor 创建一个管理行的类。在line类中创建一个方法,用于在添加字母时计算下一个字母的中心坐标 当用户点击底部的字母时: 向线条对象询问下一个字母的坐标 将该线坐标转换为底部区域的坐标空间 从底部区
- 每个标签有1个字母(在你的例子中有10个),并从底部区域的类中管理它们
- 不要复制标签,只需将标签从底部移动到行,同时更改
和backgroundColor
textColor
- 创建一个管理行的类。在line类中创建一个方法,用于在添加字母时计算下一个字母的中心坐标
- 向线条对象询问下一个字母的坐标
- 将该线坐标转换为底部区域的坐标空间
- 从底部区域到新坐标执行一个简单的
动画ui视图
- 当动画启动时,告诉行一个新字母即将到来。这将允许line对象将其现有字母向左移动一点
- 动画完成后,可以将点击的
从底部区域的视图层次移动到线条UILabel
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
}