Adding a sublayer to self.layer works just like adding a subview to self. Sublayers are drawn on top of their superlayers. In this case the superlayer is your view, so the image in the sublayer will be rendered on top of whatever you draw in drawRect:
Luke Sent from my iPhone. On Aug 24, 2010, at 8:47 PM, David F. <[email protected]> wrote: > What is the relationship of a UIView's layer (and its sublayers) to what > happens when that UIView's drawRect: is called? I would expect the code > below to draw a diagonal line across (i.e. on top of) the image, but it looks > like the line is drawn behind the image. In other words, all I see is the > image. > > @implementation MyView > > - (void)awakeFromNib { > CALayer *imgLayer = [CALayer layer]; > imgLayer.position = CGPointMake(self.bounds.size.width / 2, > self.bounds.size.height / 2); > imgLayer.bounds = self.bounds; > imgLayer.contents = (id)[[UIImage imageNamed: @"myimage.jpg"] CGImage]; > [self.layer addSublayer: imgLayer]; > } > > - (void)drawRect: (CGRect)rect { > CGMutablePathRef path = CGPathCreateMutable(); > CGPathMoveToPoint(path, NULL, 0, 0); > CGPathAddLineToPoint(path, NULL, self.bounds.size.width, > self.bounds.size.height); > > CGContextRef context = UIGraphicsGetCurrentContext(); > UIColor *black = [UIColor colorWithRed: 0 green: 0 blue: 0 alpha: 0.5]; > CGContextSetStrokeColorWithColor(context, black.CGColor); > CGContextSetLineWidth(context, 10); > CGContextSetLineCap(context, kCGLineCapRound); > CGContextAddPath(context, path); > CGContextStrokePath(context); > CFRelease(path); > } > > @end > > Any hints? > > Thanks, > David > > _______________________________________________ > > Cocoa-dev mailing list ([email protected]) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/luketheh%40apple.com > > This email sent to [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
