美文网首页
Core Graphics

Core Graphics

作者: sea777777 | 来源:发表于2016-06-14 11:13 被阅读24次

    -(void)drawRect:(CGRect)rect

    {

    //    CGContextRef context = UIGraphicsGetCurrentContext();

    //    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);

    //画弧线

    //    CGContextMoveToPoint(context, 50, 0);

    //    CGContextAddArc(context, 50, 50, 50, 270*M_PI/180, 0, 0);

    //    CGContextStrokePath(context);

    //画椭圆形

    //    CGContextAddEllipseInRect(context, CGRectMake(0, 0, 300, 300));

    //    CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);

    //    CGContextFillPath(context);

    //画曲线

    CGContextRefcontext =UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context,1);

    CGContextSetStrokeColorWithColor(context, [UIColorredColor].CGColor);

    CGContextMoveToPoint(context,100,100);

    //(150, 100):控制点,(200, 200):终点

    CGContextAddQuadCurveToPoint(context,150,100,200,200);

    CGContextStrokePath(context);

    //贝塞尔路径画圆

    UIBezierPath*bezierPath = [UIBezierPathbezierPathWithArcCenter:CGPointMake(120,120)

    radius:100

    startAngle:(CGFloat) -M_PI_2

    endAngle:(CGFloat)2*M_PI*_progress

    clockwise:YES];

    bezierPath.lineWidth=10;

    [[UIColorblueColor]setStroke];

    [bezierPathstroke];

    //CAShapeLayer

    }

    //动态更新贝塞尔路径

    -(void)startAnimation

    {

    NSTimer*timer = [NSTimerscheduledTimerWithTimeInterval:1

    target:self

    selector:@selector(update)

    userInfo:nil

    repeats:YES];

    [timerfire];

    }

    -(void)update

    {

    _progress+=0.1;

    [selfsetNeedsDisplay];

    }

    //蒙版

    - (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    UIImageView*backgroundImageView = [[UIImageViewalloc]initWithFrame:CGRectMake(40,80,198,162)];

    UIImageView*maskImageView = [[UIImageViewalloc]initWithFrame:backgroundImageView.bounds];

    [maskImageViewsetImage:[UIImageimageNamed:@"bg.png"]];

    backgroundImageView.layer.mask= maskImageView.layer;

    UIImageView*imageView = [[UIImageViewalloc]initWithFrame:backgroundImageView.bounds];

    [imageViewsetImage:[UIImageimageNamed:@"RI8[50WUPQ@TR~917UULUCR.jpg"]];

    [backgroundImageViewaddSubview:imageView];

    [self.viewaddSubview:backgroundImageView];

    }

    例子:

    - (instancetype)initWithFrame:(CGRect)frame

    {

    self = [super initWithFrame:frame];

    if (self) {

    [self setBackgroundColor:[UIColor clearColor]];

    }

    return self;

    }

    - (void)drawRect:(CGRect)rect {

    // Drawing code

    CGContextRef ctx =  UIGraphicsGetCurrentContext();

    //圆形

    CGContextSetStrokeColorWithColor(ctx, [UIColor whiteColor].CGColor);

    CGContextAddEllipseInRect(ctx,CGRectMake(0, 0, 100,100));

    CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);

    CGContextFillPath(ctx );

    self.backgroundColor = [UIColor redColor];

    //直线

    //    [[UIColor redColor] set ];

    //    CGContextSetLineWidth(ctx, 3);

    //    CGContextMoveToPoint(ctx, 0, 100);

    //    CGContextAddLineToPoint(ctx, 500, 100);

    //    CGContextStrokePath(ctx);

    //绘制图片

    UIImage *img = [UIImage imageNamed:@"test"];

    [img drawAtPoint:CGPointMake(0, 200)];

    }

    相关文章

      网友评论

          本文标题:Core Graphics

          本文链接:https://www.haomeiwen.com/subject/erhudttx.html