{"id":447,"date":"2012-11-21T11:44:51","date_gmt":"2012-11-21T11:44:51","guid":{"rendered":"http:\/\/www.blogs.abeazam.com\/dev\/?p=447"},"modified":"2012-11-21T11:44:51","modified_gmt":"2012-11-21T11:44:51","slug":"appcode-file-template-for-coregraphics-and-paintcode","status":"publish","type":"post","link":"http:\/\/www.blogs.abeazam.com\/dev\/2012\/11\/appcode-file-template-for-coregraphics-and-paintcode\/","title":{"rendered":"AppCode File Template for CoreGraphics and PaintCode"},"content":{"rendered":"<p>In my <a title=\"Vector Graphics in iOS with CoreGraphics and PaintCode from an SVG file\" href=\"http:\/\/www.blogs.abeazam.com\/dev\/2012\/11\/vector-graphics-in-ios-with-coregraphics-and-paintcode-from-an-svg-file\/\">last post<\/a> I setup a CALayer subclass for CoreGraphics and PaintCode.<\/p>\n<p>I created an AppCode template that I am sharing here.<\/p>\n<p>The header file template:<\/p>\n<pre class=\"lang:objc decode:true\" title=\"header file (.h)\">#parse(\"Objective-C File Header.m\")\r\n\r\n#import &lt;QuartzCore\/QuartzCore.h&gt;\r\n\r\n@interface ${NAME} : CALayer \r\n\r\n@end<\/pre>\n<p>Implamentation file template:<\/p>\n<pre class=\"lang:default decode:true crayon-selected\" title=\"Implementation file (.m)\">#parse(\"Objective-C File Header.m\")\r\n\r\n#import \"${HEADER_FILENAME}\"\r\n\r\n@interface ${NAME} ()\r\n\r\n- (void)drawImage;\r\n\r\n@end\r\n\r\n@implementation ${NAME} \r\n\r\n- (id)init\r\n{\r\n    self = [super init];\r\n    if (self) {\r\n\r\n\t\t[self setNeedsDisplay];\r\n    }\r\n\r\n    return self;\r\n}\r\n\r\n-(void)display\r\n{\r\n\r\n    UIScreen *screen = [UIScreen mainScreen];\r\n\r\n    CGSize imgSize = CGSizeMake(ceilf(100.0f * self.contentsScale), ceilf(100.0f * self.contentsScale));\r\n\r\n    UIGraphicsBeginImageContextWithOptions(imgSize, NO, [screen scale]);\r\n\r\n    CGContextRef context = UIGraphicsGetCurrentContext();\r\n    CGContextScaleCTM(context, self.contentsScale, self.contentsScale);\r\n\r\n    [self drawImage];\r\n\r\n    UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();\r\n    UIGraphicsEndImageContext();\r\n    CALayer *curLayer = (CALayer*)self;\r\n\r\n    curLayer.frame = CGRectMake(0, 0, imgSize.width, imgSize.height);\r\n\r\n    curLayer.contents = (id)aImage.CGImage;\r\n\r\n}\r\n\r\n- (void)drawImage\r\n{\r\n    \/\/add draw code here\r\n\r\n}\r\n\r\n@end<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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: #parse(&#8220;Objective-C File Header.m&#8221;) #import &lt;QuartzCore\/QuartzCore.h&gt; @interface ${NAME} : CALayer @end Implamentation file template: #parse(&#8220;Objective-C File Header.m&#8221;) #import &#8220;${HEADER_FILENAME}&#8221; @interface ${NAME} () &#8211; (void)drawImage; @end @implementation ${NAME} &#8211; (id)init [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[89,25,26,28,30,36,37,88,53],"tags":[],"_links":{"self":[{"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/posts\/447"}],"collection":[{"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/comments?post=447"}],"version-history":[{"count":4,"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/posts\/447\/revisions"}],"predecessor-version":[{"id":483,"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/posts\/447\/revisions\/483"}],"wp:attachment":[{"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/media?parent=447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/categories?post=447"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.blogs.abeazam.com\/dev\/wp-json\/wp\/v2\/tags?post=447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}