0

我正在做一个游戏项目,我想做的是在一个窗口中移动一组标签,从屏幕顶部到底部,让用户阅读这些标签,然后消失(就像标签从上到下滑动没有任何触发器)。

我认为循环中的计时器变量可以帮助我根据计时器值滑动和更改它们的位置。

我做了一些研究,但如果你与我分享一篇文章,我可以知道我应该查找什么。

谢谢你。

4

2 回答 2

2

@Chuck 是对的。详细说明:

-(void)doTheLabelThing {

    // assume all the labels are in a container view that is 320 wide and 100 tall
    self.labelContainer.frame = CGRectMake(0, -100, 320, 100);

    [UIView animateWithDuration:0.5 animations:^{
        // slide down
        self.labelContainer.frame = CGRectMake(0, 360, 320, 100);
    } completion:^(BOOL finished) {
        // give user 3 seconds to read it
        [UIView animateWithDuration:0.5 delay:3.0 options:0 animations:^{
            // fade out
            self.labelContainer.alpha = 0.0;
        } completion:^(BOOL finished) {
            // restore everything to original state
            self.labelContainer.alpha = 1.0;
            self.labelContainer.frame = CGRectMake(0, -100, 320, 100);
        }];
    }];
}
于 2012-06-11T18:48:39.560 回答
1

不要使用循环或计时器;使用核心动画。只需执行animateWithDuration:animations:或类似操作,并将他们的位置设置为您希望他们成为的新位置。

于 2012-06-11T18:12:16.823 回答