用UILabel实现文字滚动播放(跑马灯)效果

- (void)viewDidLoad {
    [super viewDidLoad];
    
  //数据源
    self.messageArray = [NSArray arrayWithObjects:
                         @"1",
                         @"2",
                         @"3",
                         nil];
    self.msgCount = 0;//从第一条开始显示
}
-(void)viewDidAppear:(BOOL)animated {
    //播放第一条并加入Timer设定切换间隔时间
    [self msgChange];
    [NSTimer scheduledTimerWithTimeInterval:5.0f target:self selector:@selector(msgChange) userInfo:nil repeats:YES];
}
- (void)msgChange {

    if (self.msgCount < self.messageArray.count) {
        self.scrollLabel.text = [self.messageArray objectAtIndex:self.msgCount];
        self.msgCount++;
    } else {
        self.scrollLabel.text = @"no message";//此处删除可以改为循环滚动播放
    }
    
    [self.scrollLabel sizeToFit];
    CGRect frame = self.scrollLabel.frame;
    frame.origin.x = [UIScreen mainScreen].bounds.size.width;
    self.scrollLabel.frame = frame;
    
    [UIView beginAnimations:@"scrollLabelTest" context:NULL];
    [UIView setAnimationDuration:5.0f];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationRepeatAutoreverses:NO];
    [UIView setAnimationRepeatCount:0];
    
    frame = self.scrollLabel.frame;
    frame.origin.x = -frame.size.width;
    self.scrollLabel.frame = frame;
    [UIView commitAnimations];
}
原文地址:https://www.cnblogs.com/liuliuliu/p/4906736.html