• QQ去除未读状态的动画


    QQ去除未读状态的动画

    by 伍雪颖



    - (void)drawRect:(CGRect)rect {
       
    switch (_state) {
           
    case SRSlimeStateNormal:
            {
               
    float percent = 1 - distansBetween(_startPoint , _toPoint) / _viscous;
               
    if (percent == 1) {
                   
    CGContextRef context = UIGraphicsGetCurrentContext();
                   
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(_startPoint.x - _radius, _startPoint.y - _radius, 2*_radius, 2*_radius)
                                                                   
    cornerRadius:_radius];
                    [
    self setContext:context path:path];
                   
    CGContextDrawPath(context, kCGPathFillStroke);
                }
    else {
                   
    CGFloat startRadius = _radius * (kStartTo + (1-kStartTo)*percent);
                   
    CGFloat endRadius = _radius * (kEndTo + (1-kEndTo)*percent);
                   
    CGContextRef context = UIGraphicsGetCurrentContext();
                   
                   
    UIBezierPath *path = [self bodyPath:startRadius
                                                   
    end:endRadius
                                               
    percent:percent];
                    [
    self setContext:context path:path];
                   
    CGContextDrawPath(context, kCGPathFillStroke);
                   
    if (percent <= 0) {
                       
    _state = SRSlimeStateShortening;
                        [
    self scaling];
                    }
                }
            }
               
    break;
           
    case SRSlimeStateShortening:
            {
               
    _toPoint = CGPointMake((_toPoint.x - _startPoint.x)*0.8 + _startPoint.x,
                                           (
    _toPoint.y - _startPoint.y)*0.8 + _startPoint.y);
               
    float p = distansBetween(_startPoint, _toPoint) / _viscous;
               
    float percent =1 -p;
               
    float r = _radius * p;
               
               
    if (p > 0.01) {
                   
    CGFloat startRadius = r * (kStartTo + (1-kStartTo)*percent);
                   
    CGContextRef context = UIGraphicsGetCurrentContext();
                   
                   
    CGFloat endRadius = r * (kEndTo + (1-kEndTo)*percent) * (1+percent / 2);
                   
    UIBezierPath *path = [self bodyPath:startRadius
                                                   
    end:endRadius
                                               
    percent:percent];
                    [
    self setContext:context path:path];
                   
    CGContextDrawPath(context, kCGPathFillStroke);
                }
    else {
                   
    self.hidden = YES;
                   
    _state = SRSlimeStateMiss;
                }
            }
               
    break;
           
    default:
               
    break;
        }
    }


  • 相关阅读:
    751时尚公开课(三)宋杰林:时尚大跃进_豆瓣
    第九课堂-经验与技能分享交易网站
    751D·PARK北京时尚设计广场_百度百科
    2014马上有乐趣 每周六免费服装缝纫体验课_豆瓣
    设计工作室寻求合作
    【基础穿搭法】关于穿衣显高和好看的三个小技巧。(请深爱)
    给快播指一条生路:转型会员付费吧
    美华美依 | 创业谱
    服装配饰_MAVIN MARVY 高级服装定制_西服定制_衬衫定制_西装定制
    探索者系列_百度百科
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5392156.html
Copyright © 2020-2023  润新知