Skip navigation.
 
mlRe: CALayer Border, Not Inset
FROM : Scott Anguish
DATE : Mon Jan 07 19:43:54 2008

On Jan 7, 2008, at 1:39 PM, Bridger Maxwell wrote:

> Hello,
>  RIght now I am making a Core Animation program that displays 
> photos.  This
> is the code I use to draw the image (inside the CALayer), along with a
> slightly transparent black background and a white border.
>
> - (void) setImage: (CGImageRef)image bounds: (CGRect)rect
> {
>    self.contents = (id) image;
>    self.contentsGravity = @"resize";
>    self.minificationFilter = kCAFilterLinear;
>    self.bounds = rect;
>    CGFloat border = MAX(CGRectGetHeight(rect),CGRectGetWidth(rect));
>    border /= 60;
>    self.borderWidth = border;
>    self.borderColor = CGColorGetConstantColor(kCGColorWhite);
>    CGColorRef background =  CGColorGetConstantColor(kCGColorBlack);
>    background = CGColorCreateCopyWithAlpha(background,0.8);
>    self.backgroundColor = background;
> }
>
> The only problem is that the border is drawn over the image, because 
> it is
> drawn inset from the bounds, and the contents of the layer go right 
> to the
> edge.  Is there a way to either have the image draw itself a little 
> ways out
> from the bounds (to leave room for a border) or to draw the border 
> outset
> from the bounds?  I suppose I could make another layer within this 
> one to
> hold the image, but being a new Cocoa programmer I am a little 
> worried about
> making my program any more complicated than it needs to be.


if you simply make the layer bounds a bit larger, and set the display 
mode so that it doesn't stretch the picture that should work.

Related mailsAuthorDate
mlCALayer Border, Not Inset Bridger Maxwell Jan 7, 19:39
mlRe: CALayer Border, Not Inset Scott Anguish Jan 7, 19:43
mlRe: CALayer Border, Not Inset Bridger Maxwell Jan 7, 21:17
mlRe: CALayer Border, Not Inset David Duncan Jan 7, 23:03
mlRe: CALayer Border, Not Inset Scott Anguish Jan 8, 21:09
mlRe: CALayer Border, Not Inset Scott Anguish Jan 8, 21:10