I have a custom UIImageView class that creates thumbnails (UIImageView) and each thumbnail has a label.
The label is created by another class. The label class creates a UIImageView and a UITextView on top of it. This is the init object class' init method:
- (id)initWithFrame:(CGRect)frame
{
    if ([super initWithFrame:frame] == nil) {
        return nil;
    }
 CGRect myFrame = CGRectMake(0, 0, 100, 100);
 myLabel = [[myLabelClass alloc] initWithFrame: myFrame]; //myLabelClass is a UIImageView based class
 [myLabel setCenter:CGPointMake(50, 50)];
 [self addSubview: myLabel];
  return self;
}
So, I have this
 MAIN VIEW CONTROLLER   |   
                        |___ UIImageView WITH LABEL
                                                |
                                                |____ label background (UIView)
                                                |____ UITEXTVIEW (text)
Now I want to write the contents of all these 3 components to a quartz context.
I need to write using drawInRect, because I need to write the full object to a precise location.
I expected object.layer.contents to be the image equivalent to these 3 "layers" flattened, in other words, the object's image, the label background and the label text, as it would if I created these 3 objects in Photoshop and flatten the composition.
I also expect object.myLabel.layer.contents to 
contains the rendered contents of the UITextView over the label background.
The problem is that when I use
UIImage *myImage = [UIImage imageWithCGImage:objecto.myLabel.layer.contents];
[myImage drawInRect:CGRectMake(0, 0, 100, 100)];
I get nothing.
How can I obtain a "flattened" image resultant to the full object (including its subviews)?
thanks