Skip navigation.
 
mlRe: CALayer Border, Not Inset
FROM : Bridger Maxwell
DATE : Mon Jan 07 21:17:29 2008

Thanks Scott, but that is not quite what I am looking for.  That solution
would normally be fine, but I need to be able to resize the CALayer with the
picture displayed in it.  Is there a way to tell the image within it to
resize, but not fill the whole bounds?

  Thank You,
    Bridger Maxwell

On Jan 7, 2008 11:43 AM, Scott Anguish <<email_removed>> wrote:

>
> 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