创建随机生成的水平飞行标签

时间:2015-04-10 17:02:42

标签: ios swift uilabel uianimation

我想在我的应用中添加一项功能,该功能涉及在视图中水平飞行的不同关键字的标签。理想情况下,我希望这可以通过一系列单词来完成,这些单词随机选择以不同的速度在屏幕上飞行,并在屏幕上的3-4个不同位置(垂直)飞行。

我一直在做一些研究,也许我正在寻找错误的东西,但我找不到太多的建议来了解我应该从哪里开始。我只能找到如何将精灵移动到视图的随机区域。

我想有更多展示,但不幸的是,到目前为止我唯一的代码如下:

func generateWords() {
    let keyWordArray = ["Word 1", "Word 2", "Word 3", "Word 4", "Word 5"]

    for _ in 1...5 {
        let randomIndexWords = Int(arc4random_uniform(UInt32(keyWordArray.count)))
    }
}

如何在不同的垂直位置随机生成多个标签,这些标签在屏幕上以不同的速度飞行然后消失?这将需要无限发生,直到用户关闭视图。

谢谢!

1 个答案:

答案 0 :(得分:1)

您想先获得屏幕高度:

    CGFloat height;
    height = [[UIScreen mainScreen] bounds].size.height;

然后你可以自己决定垂直位置,即如果你有10个标签将高度除以10然后递增。要为标签设置动画,您需要将框架从屏幕的一侧放在屏幕上,然后将其放在另一侧。您可以为UIView设置动画,在此示例中,初始标签框架为(someXOffTheScreenOnTheRight, someY, widthOfLabel, HeightOfLabel)

[UIView animateWithDuration:0.8 delay:0 options:0 animations:^{
        [self.view addSubview:label];

        label.frame=CGRectMake(-10, someY, widthOfLabel, heightOfLabel);



    } completion:^(BOOL finished){
        [label removeFromSuperview];

    }];

这将从右到左为标签设置动画。您可以通过更改持续时间来调整速度。

当然,如果你想使用随机Y坐标,那么使用arc4random方法。

这应该足以让你去..