On Sat, 21 Nov 2009 17:21:55 +0200, Henri H?kkinen <hen...@henuxsoft.com>
said:
>Hello.
>
>I am deriving my own custom CALayer class for my custom NSView class but there
is something I don't quite understand about the geometry.
>
>This is how I create the layer in awakeFromNib: of my custom NSView class:
>
>- (void)awakeFromNib {
> MyLayer *myLayer = [MyLayer layer];
>
> self.layer = myLayer;
> self.wantsLayer = YES;
>
> myLayer.needsDisplayOnBoundsChange = YES;
> myLayer.position = CGPointMake(100.0, 100.0);
> myLayer.bounds = CGRectMake(0.0, 0.0, 100.0, 100.0);
>}
>
>And this is how I draw the layer in MyLayer:
>
>- (void)drawInContext:(CGContextRef)context {
> CGContextFillRect(context, [self bounds]);
>}
>
>I don't any other methods overidden by neither of the classes.
>
>However the layer somehow automatically gets resized to fill the whole view
(that is, the view is rendered completely in black by the CGContextFillRect
call). How I understand this, I think it should just draw a 100x100 rectangle at
the position (100, 100). What am I missing?

A layer is not something different from a view, so much as it's an
encapsulation of the drawing done for that view.

So if you want to cover a view with a *smaller* layer, it needs to be a
sublayer of the view's layer. (Or, it could be the layer of a smaller
subview of the view.)

m.

-- 
matt neuburg, phd = m...@tidbits.com, <http://www.tidbits.com/matt/>
A fool + a tool + an autorelease pool = cool!
AppleScript: the Definitive Guide - Second Edition!
http://www.tidbits.com/matt/default.html#applescriptthings



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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 arch...@mail-archive.com

Reply via email to