IOS开发实现歌词自动滚动功能

今天练习到媒体播放的模块,学过了音乐播放后,我想实现在tableView中歌词自动滚动功能,实际操作起来其实并没有想象的复杂,关键是要想到一种能实时更新当前滚动行的方法,我选用的是NSTimer计时器,通过和记录数据的歌词对应时间做对比来实现歌词更新显示。我就把核心实现记录一下。

在Viewdidload实例化定时器

    _timer = [NSTimer scheduledTimerWithTimeInterval:0.09f target:self selector:@selector(rollLyc) userInfo:nil repeats:YES];


- (void)rollLyc

{

    CGFloat currentTime = _audio.currentTime;

    CGFloat lycTime = [_lycList[currentLine + 1][@"time"] floatValue];//_lycList是存储有每句歌词和对应的时间的字典集合  currentLine设置为成员变量,在ViewDidLoad中初始为0

    

    NSLog(@"%f --- %f ",currentTime,lycTime);

    

    if (currentTime >= lycTime) {

        currentLine = currentLine + 1;

    }

    NSIndexPath *indexpath = [NSIndexPath indexPathForRow:currentLine inSection:0];

    [self.tableView selectRowAtIndexPath:indexpath animated:YES scrollPosition:UITableViewScrollPositionMiddle];

}




;


你可能感兴趣的:(IOS开发)