| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- //
- // LiveGiftShowNumberView.m
- // LiveSendGift
- //
- // Created by Jonhory on 2016/11/11.
- // Copyright © 2016年 com.wujh. All rights reserved.
- //
- #import "LiveGiftShowNumberView.h"
- #import "Masonry.h"
- #import "MSNumberScrollAnimatedView.h"
- @interface LiveGiftShowNumberView ()
- @property (nonatomic, strong) MSNumberScrollAnimatedView *numLab;
- @property (nonatomic ,assign) NSInteger lastNumber;/**< 最后显示的数字 */
- @property (nonatomic ,assign) NSInteger oldNumber;/**< 最后显示的数字 */
- @end
- @implementation LiveGiftShowNumberView
- @synthesize number = _number;
- - (void)setNumber:(NSInteger)number{
- self.lastNumber = number;
- }
- - (NSInteger)number{
- _number = self.lastNumber ;
- self.lastNumber += 1;
- return _number;
- }
- - (NSInteger)mo_AddNumWith:(NSInteger)num{
- self.oldNumber = _number;
- _number = self.lastNumber + num ;
- self.lastNumber = _number;
- return _number;
- }
- /**
- 获取显示的数字
-
- @return 显示的数字
- */
- - (NSInteger)getLastNumber{
- return self.lastNumber - 1;
- }
- /**
- 改变数字显示
-
- @param numberStr 显示的数字
- */
- - (void)changeNumber:(NSInteger)number{
- if (number <= 0) {
- return;
- }
-
- if(self.oldNumber == 0){
- self.oldNumber = 1;
- }
-
- NSString *numberString = [NSString stringWithFormat:@"%zd", number];
- [self.numLab mas_updateConstraints:^(MASConstraintMaker *make) {
- make.width.mas_equalTo(numberString.length * 20);
- }];
-
- [self.numLab setNeedsLayout];
- [self.numLab layoutIfNeeded];
-
- if((number - self.oldNumber) < 6){//不需要滚动动画
- [self.numLab setNumber:@(number)];
- [self.numLab stopAnimation];
- } else{//需要滚动动画
- //滚动动画需要在外面执行完缩放动画完后才去执行
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- [self.numLab setNumber:@(number)];
- [self.numLab startAnimation];
- });
- }
-
- [self layoutIfNeeded];
-
- }
- - (MSNumberScrollAnimatedView *)numLab {
- if (!_numLab) {
- _numLab = [[MSNumberScrollAnimatedView alloc] initWithVipType:self.vipType];
- _numLab.isAscending = YES;
- [self addSubview:_numLab];
- [_numLab mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.right.mas_equalTo(0);
- make.height.mas_equalTo(23);
- make.width.mas_equalTo(20);
- }];
- }
- return _numLab;
- }
- @end
|