Skip to content

azu/DrowningGraphicer

Repository files navigation

DrowningGraphicer

image

CoreGraphics wrapper library.

  • Core concept is simple
  • You don't have to pass CGContextRef as argument.
  • Automatically-managed CGContextRestoreGState / CGContextSaveGState.
    • Allow you to forget that CGContext*GState.

Installation

pod 'DrowningGraphicer', :git => 'https://github.com/azu/DrowningGraphicer.git'

Usage

flow

- (void)drawContext:(CGContextRef) context size:(CGSize) size {
    DrowningGraphicer *drowning = [DrowningGraphicer drowningWithContextRef:context];
    // *1 Automatically call `CGContextSaveGState(ctx)`
    [drowning lineContext:^(DrowningGraphicsLineContext *lineContext) {
        NSUInteger count = 30;
        for (NSUInteger i = 0; i < count; i++) {
            CGFloat yPosition = (size.height / count) * i;
            [lineContext drawLine:CGPointMake(0, yPosition)
                         endPoint:CGPointMake(CGRectGetWidth(self.frame), yPosition)
                         lineColor:[UIColor blackColor]];
        }
    }];
    // *1 Automatically, call `CGContextRestoreGState(ctx);`
    // *2 Automatically call `CGContextSaveGState(ctx)`
    [drowning arcContext:^(DrowningGraphicsArcContext *arcContext) {
        [arcContext drawFilledCircle:CGPointMake(size.width / 2,
            size.height / 2) radius:5 color:[UIColor blueColor]];
    }];
    // *2 Automatically, call `CGContextRestoreGState(ctx);`
}

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT

Photo

http://flic.kr/p/4kBG7

About

CoreGraphics wrapper library - easy to draw.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published