动画垂直滚动文本

时间:2013-06-15 18:31:01

标签: ios xcode uiviewcontroller uilabel

我在应用中实现了一个关于视图控制器,当按下按钮时显示模态。

在视图控制器上,我有一个UILabel,并在那里显示一些文字。我想对文本进行动画处理,使其自动淡入或向上滚动显示制作应用程序的团队成员的姓名 - 就像在电影结束时滚动一样。

是否有人在UILabel中有类似的滚动工作?

1 个答案:

答案 0 :(得分:4)

UIScrollView应该可以解决问题。使其无限循环的一种非常快捷的方法是在顶部和底部有一个空白区域,这是滚动视图的大小。 (还有其他解决方案,like this或WWDC代码(搜索“街道卷轴”here ...但这些对于“约”视图来说可能有点多了。

但是在内容的每一端都有一个空白,你可以像这样循环:

- (void)loopCredits {

    CGRect frame = self.creditsScrollView.frame;
    CGPoint bottomOffset = CGPointMake(0, self.creditsScrollView.contentSize.height-frame.size.height);

    [UIView animateWithDuration:10.0 animations:^{
        self.creditsScrollView.contentOffset = bottomOffset;
    } completion:^(BOOL finished) {
        // non animated scroll back, then run this method again with a perform
        // so we don't wind up the stack
        self.creditsScrollView.contentOffset = CGPointZero;
        [self performSelector:@selector(loopCredits) withObject:nil afterDelay:0];
    }];

使用遮罩图像可以轻松完成淡入淡出,或者为了更逼真的外观,您可以根据标签相对于scrollView边界内标签的Y偏移的位置来计算alpha级别。