iOS开发 UILabel文字滚动

 // 获取文本
    NSString *string = @"ScofieldTang文字滚动ScofieldTang文字滚动ScofieldTang文字滚动";
    
    // 初始化label
    UILabel *label      = [UILabel new];
    label.text          = string;
    label.font          = [UIFont systemFontOfSize:16];
    
    // 计算尺寸
    CGSize size         = [label.text sizeWithFont:label.font];
    label.frame         = (CGRect){CGPointZero, size};
    
    // 初始化ScrollView
    UIScrollView *showView = [[UIScrollView alloc] initWithFrame:CGRectMake(100, 100, 200, size.height)];
    showView.contentSize   = size;
    showView.showsHorizontalScrollIndicator = NO;
    [showView addSubview:label];
    [self.view addSubview:showView];

// 动画 判断文字宽度大于scrollView宽度时开启动画
    if (size.width > showView.frame.size.width) {
        [UIView animateKeyframesWithDuration:5
                                       delay:0
                                     options:UIViewAnimationOptionRepeat //动画重复的主开关
         |UIViewAnimationOptionAutoreverse //动画重复自动反向,需要和上面这个一起用
         |UIViewAnimationOptionCurveLinear //动画的时间曲线,滚动字幕线性比较合理
                                  animations:^{
                                      // 计算移动的距离
                                      CGPoint point = showView.contentOffset;
                                      point.x = size.width - 200;
                                      showView.contentOffset = point;
                                  }
                                  completion:^(BOOL finished) {
                                      
                                  }];
    }




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容