In my last post I setup a CALayer subclass for CoreGraphics and PaintCode.
I created an AppCode template that I am sharing here.
The header file template:
1 2 3 4 5 6 7 |
#parse("Objective-C File Header.m") #import <QuartzCore/QuartzCore.h> @interface ${NAME} : CALayer @end |
Implamentation file template:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#parse("Objective-C File Header.m") #import "${HEADER_FILENAME}" @interface ${NAME} () - (void)drawImage; @end @implementation ${NAME} - (id)init { self = [super init]; if (self) { [self setNeedsDisplay]; } return self; } -(void)display { UIScreen *screen = [UIScreen mainScreen]; CGSize imgSize = CGSizeMake(ceilf(100.0f * self.contentsScale), ceilf(100.0f * self.contentsScale)); UIGraphicsBeginImageContextWithOptions(imgSize, NO, [screen scale]); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextScaleCTM(context, self.contentsScale, self.contentsScale); [self drawImage]; UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); CALayer *curLayer = (CALayer*)self; curLayer.frame = CGRectMake(0, 0, imgSize.width, imgSize.height); curLayer.contents = (id)aImage.CGImage; } - (void)drawImage { //add draw code here } @end |
[…] created an AppCode template for […]