如何将带有文本的自定义标签插入带动画的视图中?

时间:2016-05-24 21:44:10

标签: swift

我正在制作一个小拳击应用程序。整整一周,我都试图找出如何解决上面我当前的问题,没有运气:(。

摘要

基本上是1 v 1游戏。每当用户击中另一个玩家时,我想在他附近弹出一个小号,然后浮起并消失。

有点像你玩MMORPG时,当你做dmg时,你会看到你做了多少。请参阅下面的图片以获取示例!

Problem

所以基本上每当用户击中另一个玩家时,我想在屏幕上弹出一个小数字来显示dmg,然后浮起并消失。

详细

  1. 我正在用简单的UIView构建游戏
  2. 标签是UILabel
  3. 随时随地如何实现这一目标?

    谢谢!

1 个答案:

答案 0 :(得分:1)

创建标签,然后使用UIView.animateWithDuration为其设置动画。

    let label = UILabel(frame: CGRect(origin: point/*The point where you want to add your label*/, size: CGSize(width: 50, height: 50)))
    label.text = "+1"
    label.font = UIFont()//Your font
    label.textColor = UIColor.blueColor()
    label.alpha = 1
    self.view.addSubview(label)

    UIView.animateWithDuration(1) { 
        label.center = CGPoint()//The point where you want your label to end up
        label.alpha = 0
    }

编辑:如评论中所述,您询问了如何在随机点创建标签。试试这个:

    let screenWidth = self.view.frame.width
    let screenHeight = self.view.frame.height

    let randomX = CGFloat(arc4random_uniform(UInt32(screenWidth)))
    let randomY = CGFloat(arc4random_uniform(UInt32(screenHeight)))

    let point = CGPoint(x: randomX, y: randomY)

正如您将注意到的,对于宽度和高度,我使用了视图框架的宽度和高度。您可能想要使用视图的边界。有关详情,请查看this SO Post