• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: CALayer Border, Not Inset
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CALayer Border, Not Inset


  • Subject: Re: CALayer Border, Not Inset
  • From: Scott Anguish <email@hidden>
  • Date: Tue, 8 Jan 2008 15:09:38 -0500

not that I can think of.

in that case you would need to use grouped layers as I suggested.. make the image in the inner one expand to the size layer (likely with respect for aspect) and keep the outer one the size you want.

hope that makes some sense.


On Jan 7, 2008, at 3:17 PM, Bridger Maxwell wrote:

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@hidden> 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.



_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


References: 
 >CALayer Border, Not Inset (From: "Bridger Maxwell" <email@hidden>)
 >Re: CALayer Border, Not Inset (From: Scott Anguish <email@hidden>)
 >Re: CALayer Border, Not Inset (From: "Bridger Maxwell" <email@hidden>)

  • Prev by Date: Trouble getting CALayers to be transparent
  • Next by Date: Need advice on creating a Bookmark Bar View
  • Previous by thread: Re: CALayer Border, Not Inset
  • Next by thread: [Meeting] Toronto CocoHeads / tacow meeting tomorrow
  • Index(es):
    • Date
    • Thread