-
<h2>目前常接觸的歌詞格式
-
<h2>未來會接觸的歌詞格式(我沒接觸過)
看到這歌詞就懵逼灵妨,但我覺得這應(yīng)該有兩個屬性衣陶,一個是time柄瑰,一個是歌詞
- 首先根據(jù)讀取歌詞
-
扣除多余部分
- 根據(jù)每句歌詞中間的“]”創(chuàng)建模型
//放開一個方法根據(jù)歌詞名解析
/** 歌詞名 */
@property (nonatomic, copy) NSString *lrcName;
#pragma mark - 重寫lrcName
- (void)setLrcName:(NSString *)lrcName
{
// 1.記錄歌詞名
_lrcName = lrcName ;
// 2.model解析歌詞
self.lrcList = [ZJLrcTool lrcToolWithLrcName:lrcName];
// 3.刷新表格
[self.tableView reloadData];
}
#import <Foundation/Foundation.h>
@interface ZJLrcLine : NSObject
@property (nonatomic, copy) NSString *text;
@property (nonatomic, assign) NSTimeInterval time;
- (instancetype)initWithLrcLineString:(NSString *)lrcLineString;
+ (instancetype)LrcLineString:(NSString *)lrcLineString;
@end
#import "ZJLrcLine.h"
@implementation XMGLrcLine
- (instancetype)initWithLrcLineString:(NSString *)lrcLineString
{
if (self = [super init]) {
// [01:02.38]想你時你在天邊
NSArray *lrcArray = [lrcLineString componentsSeparatedByString:@"]"];
self.text = lrcArray[1];
self.time = [self timeWithString:[lrcArray[0] substringFromIndex:1]];
}
return self;
}
+ (instancetype)LrcLineString:(NSString *)lrcLineString
{
return [[self alloc] initWithLrcLineString:lrcLineString];
}
- (NSTimeInterval)timeWithString:(NSString *)timeString
{
// 01:02.38
NSInteger min = [[timeString componentsSeparatedByString:@":"][0] integerValue];
NSInteger sec = [[timeString substringWithRange:NSMakeRange(3, 2)] integerValue];
NSInteger hs = [[timeString componentsSeparatedByString:@"."][1] integerValue];
return min * 60 + sec + hs * 0.01;
}
@end
<h2>最終效果
<h3>對于這種將來有時間在補全具體代碼闸氮!無非就是生成數(shù)組的時候判斷,以“]”劃分會生成四部分教沾,判斷數(shù)組的count如果大于2個蒲跨,每一個分別和最后一個都創(chuàng)建一個模型!