`
zjjzmw1
  • 浏览: 1353779 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

画水波纹。

    博客分类:
  • iOS
阅读更多

#import "VWWWaterView.h"

 

@interfaceVWWWaterView ()

{

    UIColor *_currentWaterColor;

    

    float _currentLinePointY;///水的top

    

    float a;///水上下抖动的幅度。。。

    float b;

    

    BOOL jia;

}

@end

 

 

@implementation VWWWaterView

 

 

- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        

        [selfsetBackgroundColor:[UIColorclearColor]];

        

        a = 1.5;

        b = 0;

        jia = NO;

        

        _currentWaterColor = [UIColorblueColor];

        _currentLinePointY = 111;

        

        [NSTimerscheduledTimerWithTimeInterval:0.02target:selfselector:@selector(animateWave) userInfo:nilrepeats:YES];

        

    }

    returnself;

}

 

-(void)animateWave

{

    if (jia) {

        a += 0.01;

    }else{

        a -= 0.01;

    }

    

    

    if (a<=1) {

        jia = YES;

    }

    

    if (a>=1.5) {

        jia = NO;

    }

    

    

    b+=0.1;

    

    [selfsetNeedsDisplay];

}

 

 

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect

{

    

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGMutablePathRef path = CGPathCreateMutable();

    

    //画水

    CGContextSetLineWidth(context, 1);

    CGContextSetFillColorWithColor(context, [_currentWaterColorCGColor]);

    

    float y=_currentLinePointY;

    CGPathMoveToPoint(path, NULL, 0, y);

    for(float x=0;x<=320;x++){

        y= a * sin( x/180*M_PI + 4*b/M_PI ) * 5 + _currentLinePointY;

        CGPathAddLineToPoint(path, nil, x, y);

    }

    

    CGPathAddLineToPoint(path, nil, 320, rect.size.height);

    CGPathAddLineToPoint(path, nil, 0, rect.size.height);

    CGPathAddLineToPoint(path, nil, 0, _currentLinePointY);

    

    CGContextAddPath(context, path);

    CGContextFillPath(context);

    CGContextDrawPath(context, kCGPathStroke);

    CGPathRelease(path);

 

    

 

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics