Skip navigation.
 
mlRe: CALayer Border, Not Inset
FROM : Scott Anguish
DATE : Tue Jan 08 21:09:38 2008

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

> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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/<email_removed>
>
> This email sent to <email_removed>

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