我想在我的应用中添加一项功能,该功能涉及在视图中水平飞行的不同关键字的标签。理想情况下,我希望这可以通过一系列单词来完成,这些单词随机选择以不同的速度在屏幕上飞行,并在屏幕上的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)))
}
}
如何在不同的垂直位置随机生成多个标签,这些标签在屏幕上以不同的速度飞行然后消失?这将需要无限发生,直到用户关闭视图。
谢谢!
答案 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方法。
这应该足以让你去..