使用UILabel实现滚动字幕移动效果

使用UILabel实现滚动字幕移动效果

这个链接中的代码也实现了这种效果

https://github.com/cbpowell/MarqueeLabel

 

最终效果如下:

原理如下:

1. 获取文本

2. 计算文本宽度

3. 将这个Label放入ScrollView中

4. 将ScrollView的contentSize的宽度设置与文本宽度一致

5. 做动画

*6. 边缘的渐隐效果请使用带透明像素的PNG图片

//
//  RootViewController.m
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "RootViewController.h"
#import "YXKit.h"
#import "FontPool.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blackColor];

    // 注册字体
    REGISTER_FONT(bundleFont(@"新蒂小丸子体.ttf"), @"新蒂小丸子体");

    // 获取文本
    NSString *string = @"  喜欢这首情思幽幽的曲子,仿佛多么遥远,在感叹着前世的情缘,又是那么柔软,在祈愿着来世的缠绵。《莲的心事》,你似琉璃一样的晶莹,柔柔地拨动我多情的心弦。我,莲的心事,有谁知?我,莲的矜持,又有谁懂?  ";

    // 初始化label
    UILabel *label      = [UILabel new];
    label.text          = string;
    label.numberOfLines = 0;
    label.textColor     = [UIColor cyanColor];
    label.font          = [UIFont fontWithName:CUSTOM_FONT(@"新蒂小丸子体", 0)
                                          size:20.f];

    // 计算尺寸
    CGSize size         = [label boundingRectWithSize:CGSizeMake(0, 0)];
    label.frame         = (CGRect){CGPointZero, size};

    // 初始化ScrollView
    UIScrollView *showView = \
        [[UIScrollView alloc] initWithFrame:CGRectMake(0, 90, 320, size.height)];
    showView.contentSize   = size;
    showView.showsHorizontalScrollIndicator = NO;
    [showView addSubview:label];
    [self.view addSubview:showView];

    // 形成边缘的遮罩
    UIImageView *imageView = \
    [[UIImageView alloc] initWithFrame:CGRectMake(0, 90, 320, size.height)];
    imageView.image = [UIImage imageNamed:@"bg"];
    [self.view addSubview:imageView];

    // 动画
    [UIView animateKeyframesWithDuration:10
                                   delay:7
                                 options:UIViewKeyframeAnimationOptionAllowUserInteraction
                              animations:^{
                                  // 计算移动的距离
                                  CGPoint point = showView.contentOffset;
                                  point.x = size.width - 320.f;
                                  showView.contentOffset = point;
                              }
                              completion:^(BOOL finished) {

                              }];
}

@end
时间: 2024-11-17 12:53:52

使用UILabel实现滚动字幕移动效果的相关文章

如何在ppt中插入滚动字幕的效果

  在ppt中插入滚动字幕的效果的方法: 打开powerpoint,新建一空白幻灯片. 点击菜单"插入"-----"文本框"-----"水平" 在幻灯片上拉出一个长方形文本框,输入所需文字,如"祝大家新年快乐!",然后调整字体和颜色. 把文本框拉到幻灯片左边页面区域以外的位置. 选中文本框,右键"自定义动画" 在界面右边"自定义动画"编辑栏中,"添加效果"-----&

使用JavaScript实现连续滚动字幕效果的方法_javascript技巧

我们一般都用Marquee标签控制元素的滚动.但是单向的Marquee滚动是不连续的,每滚完一幕,就会出现一次空白.而下面介绍中的滚动则是连续的,毫不间断. 下面为你介绍这是如何实现的. 为了滚动能够"连续",我们需要将字幕的内容复制多遍,直到内容的高度不小于滚动区高度的两倍.然后我们将溢出的滚动条隐藏掉,用代码控制滚动条向下移动(这时内容将向上移动).当滚动条滚动到最下方时,理论上不能再往下滚动了,于是我们立刻调整滚动条,将它向上滚动到一个和当前画面一样的位置.结果我们看到的就是连续

会声会影滚动字幕效果怎么制作

1.打开会声会影x5,插入想要制作滚动字幕的视频,点击T按键,输入文字,并调整字体的格式以及背景颜色. 2.选择属性,打开后选择其中的应用选项,然后选择飞行效果 3.选择自定义动画属性,选择下图的红色方框的选项,然后点击播放按钮,浏览即可 好了以上就是小编为大家整理的一篇关于会声会影滚动字幕效果制作全部操作流程了,希望这篇文章可以为大家带来帮助的呀.

iOS实现滚动字幕的动画特效_IOS

效果图 开始上代码 滚动字幕的原理是用timer定时器间隔一定的时间来驱动scrollView上的内容偏移,来实现滚动的效果,原理比较简单,关键是有些细节需要处理好,实现流畅效果的同时要考虑到性能优化 这里是.h文件的接口方法及属性,可适应大部分自定义场景 /*初始化*/ -(instancetype)initWithFrame:(CGRect)frame textArray:(NSArray *)textArray colorArray:(NSArray *)textColorArray; /

全面了解制作滚动字幕完全手册

内容:滚动字幕会让很多人感到兴奋,特别是第一次使用滚动字幕时,会爱不释手.滚动字幕我也做得不少了,对它也不会兴奋了,所以现在也用得不多了.有不少朋友常问到这是怎么做的,现在做一个详细的专题,让你更全面地了解一下. 滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例d的详细说明)Drea

滚动字幕制作手册

相关文章:Dreamweaver MX 2004高级技巧(2)滚动字幕 滚动字幕会让很多人感到兴奋,特别是第一次使用滚动字幕时,会爱不释手.滚动字幕我也做得不少了,对它也不会兴奋了,所以现在也用得不多了.有不少朋友常问到这是怎么做的,现在做一个详细的专题,让你更全面地了解一下. 滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScr

dreamweaver怎么做滚动字幕

滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例的详细说明)Dreamweaver也只能用编写HTML代码的方法.所以强烈建议用记事本打开网页源代码来编辑. 1.建立第一个滚动字幕.代码: <marquee scrollAmount=2 width=300>滚动字幕</mar

用dreamweaver制作滚动字幕

滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例的详细说明)Dreamweaver也只能用编写HTML代码的方法.所以强烈建议用记事本打开网页源代码来编辑. 1.建立第一个滚动字幕.代码:  以下是引用片段: <marquee scrollAmount=2 width=300>

dreamweaver怎么制作网页滚动字幕

滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例的详细说明)Dreamweaver也只能用编写HTML代码的方法.所以强烈建议用记事本打开网页源代码来编辑. 1.建立第一个滚动字幕.代码: 以下是引用片段: <marquee scrollAmount=2 width=300>滚动字