CGContextMoveToPoint(context, self.center.x, self.center.y);
self.center
is in the view's superview's coordinate space, so that could be part of the problem. Try this:
CGContextMoveToPoint(context, CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds))
You may also want to set a breakpoint in your drawing code to ensure that self.subNodes
actually has objects at the time drawing executes.