4

我正在应用程序中实现关于视图控制器,当点击按钮时显示模式。

在视图控制器上,我有一个 UILabel 和一些文本显示在那里。我想为文本设置动画,使其自动淡入或向上滚动制作该应用程序的团队成员的姓名 - 就像电影结尾处滚动的学分一样。

是否有人对 UILabel 中的文本进行了类似的滚动操作?

4

1 回答 1

4

UIScrollView 应该可以解决问题。让它无限循环的一个非常快速的方法是在顶部和底部有一个空白区域,它是滚动视图的大小。(还有其他解决方案,例如 this或 WWDC 代码(在此处搜索“street scroller” ……但对于“关于”视图而言,这些可能有点多)。

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

- (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];
    }];

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

于 2013-06-15T19:11:26.200 回答