在新的項目中UI妹子設計出了一個金額不斷增加的動畫,如下圖:
然後就找度娘學習下了相關經驗,受到這篇博客的啟發:ios核心動畫高級技巧,使用CADisplayLink定時器來做此動效的引擎(其實使用NSTimer和GCD定時器也可以做到,但使用CADisplayLink最佳)。
支持UILable/UIButton/自定義文本控件的數字加減動畫;
支持一般文本屬性以及富文本屬性的字體顯示;
支持四種時間曲線函數動畫:由慢到快再到慢、由慢到特別快、由快到慢、勻速;
支持自定義的文本格式,例如:數字格式化千分位顯示;
支持CocoaPods導入
.... [label pp_fromNumber:0 toNumber:100 duration:1.5 animationType:PPCounterAnimationTypeEaseOut formatBlock:^NSString *(CGFloat number) { // 此處自由拼接內容 return [NSString stringWithFormat:@"%.2f",number]; } completeBlock:^{ // 完成的回調 }];
1.2 設置富文本字體屬性UILabel
.... [label pp_fromNumber:0 toNumber:100 duration:1.5 animationType:PPCounterAnimationTypeEaseOut attributedFormatBlock:^NSAttributedString *(CGFloat number) { // 此處自由設置富文本屬性的內容 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@""]; return attributedString; } completeBlock:^{ // 完成的回調 }];
.... [button pp_fromNumber:0 toNumber:100 duration:1.5 animationType:PPCounterAnimationTypeEaseOut formatBlock:^NSString *(CGFloat number) { // 此處自由拼接內容 return [NSString stringWithFormat:@"%.2f",number]; } completeBlock:^{ // 完成的回調 }];
.... [button pp_fromNumber:0 toNumber:100 duration:1.5 animationType:PPCounterAnimationTypeEaseOut attributedFormatBlock:^NSAttributedString *(CGFloat number) { // 此處自由設置富文本屬性的內容 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@""]; return attributedString; } completeBlock:^{ // 完成的回調 }];
以上就是PPCounter的簡單使用方法,更詳細的用法請看Demo : https://github.com/jkpang/PPCounter, 歡迎Star,歡迎Fork!