DrowningGraphicer
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
.
- Allow you to forget that
Installation
pod 'DrowningGraphicer', :git => 'https://github.com/azu/DrowningGraphicer.git'
Usage
- (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
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
License
MIT