美文网首页
UILabel(跑马灯)

UILabel(跑马灯)

作者: guaker | 来源:发表于2015-02-28 23:49 被阅读4735次
    跑马灯
    UILabel *marLabel = [[UILabel alloc] initWithFrame:CGRectMake(320, 100, 0, 0)];
    marLabel.text = @"人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。骊山语罢清宵半,泪雨霖铃终不怨。何如薄幸锦衣郎,比翼连枝当日愿。";
    

    size根据文字自适应

    [marLabel sizeToFit];
    [self.view addSubview:marLabel];
    

    动画方法的详细说明请参考UIView(UIViewAnimation)
    开始动画
    参数animationID,动画内部应用程序标识用来传递给动画代理消息。
    参数context,附加的应用程序信息用来传递给动画代理消息。

    [UIView beginAnimations:@"Marquee" context:NULL];
    

    设置动画持续时间

    [UIView setAnimationDuration:20.0f];
    

    设置动画变化曲线

    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    

    设置动画是否从当前状态开始播放

    [UIView setAnimationRepeatAutoreverses:NO];
    

    设置动画重复次数

    [UIView setAnimationRepeatCount:10000];
    

    设置需要动画的labelframe

    CGRect frame = marLabel.frame;
    frame.origin.x = -frame.size.width;
    marLabel.frame = frame;
    

    结束动画

    [UIView commitAnimations];
    

    注意

    以上代码是相对于屏幕的320宽度实现的,但是实际使用的时候,可能只需要屏幕中间200的宽度,应该怎么做?
    label创建一个背景view,将label添加到这个view上,这样label实际的frame就会被这个view所遮挡,这里需要设置一个属性bgView.clipsToBounds = YES;这个属性意思是子视图超出父视图的部分不显示。
    demo在简书中不知道怎么上传。

    相关文章

      网友评论

          本文标题:UILabel(跑马灯)

          本文链接:https://www.haomeiwen.com/subject/hdnpxttx.html