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

Creating randomly generated horizontal flying labels

我想向我的应用程序添加一项功能,该功能涉及在视图中水平飞行的具有不同关键字的标签。理想情况下,我希望用一组单词来完成,这些单词是随机选择的,以不同的速度和屏幕上 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)))
    }
}

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

谢谢!

您想先获取屏幕高度:

    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 方法。

这应该足以让你继续......