• 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 and frame
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CALayer and frame


  • Subject: Re: CALayer and frame
  • From: Francisco Tolmasky <email@hidden>
  • Date: Fri, 25 Jan 2008 22:11:28 -0800

That's actually what I did, I just shortened it for this mailing list. Needless to say, both give the same result.
BTW, the layer in question has the following transform applied to it:


CGAffineTransformRotate (CGAffineTransformScale(CGAffineTransformMakeRotation(-M_PI / 4.0), 4.0, 2.0), M_PI / 4)

The complete test code is as follows:

[layer setAffineTransform:CGAffineTransformRotate (CGAffineTransformScale(CGAffineTransformMakeRotation(-M_PI / 4.0), 4.0, 2.0), M_PI / 4)];
layer.frame = CGRectMake(0.0, 0.0, 200.0, 200.0);
// log this
layer.frame = layer.frame;
// log this
CGRect frame = layer.frame;
layer.frame = frame;
// log this.


If you log those three you get the following:

{{-100, -100}, {400, 400}}
{{-300, -300}, {800, 800}}
{{-700, -700}, {1600, 1600}}

As you can see, each additional setting of the frame back to itself doubles the size of the view.
This is what leads me to believe that the definition of "frame" in [CALayer setFrame:] (i.e. .frame = )
is different than [CALayer frame] (i.e. = .frame).


Francisco

On Jan 25, 2008, at 10:01 PM, Scott Anguish wrote:

try setting it to a temporarily rectangle an then back to the origional

temprect=thelayer.frame
thelayer.frame=temprect

see if that gives you the origional frame??

On Jan 26, 2008, at 12:08 AM, Francisco Tolmasky wrote:

Right, but I'm trying to interpret what the derived property means in both cases.
It seems very strange that it gets "constructed" differently than it gets
"desconstructed" (hence myLayer.frame = myLayer.frame changing the object).


Francisco

On Jan 25, 2008, at 7:53 PM, Bill Dudney wrote:

Hi Francisco,

The frame is a derived property. Its a combination of position and bounds, so when you call setFrame: its really setting the bounds and position. When you call frame its using position and bounds to make a new rect.

HTH,


-bd- http://bill.dudney.net/roller/objc

On Jan 25, 2008, at 8:28 PM, Francisco Tolmasky wrote:

I'm wondering if someone can clear up my suspicions with CALayer's frame property.
Essentially, my confusion stems from the fact that doing:


myLayer.frame = myLayer.frame

*changes* the frame of the myLayer. From what I can perceive, it would appear that
[myLayer frame] returns the bounding box of the layer (the smallest rect that could
contain it), but [myLayer setFrame:] just sets the bounds equal to the frames size/width
and adjusts the anchor point. Is this correct?


Thanks,

Francisco
_______________________________________________

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


_______________________________________________

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


  • Follow-Ups:
    • Re: CALayer and frame
      • From: Scott Anguish <email@hidden>
References: 
 >CALayer and frame (From: Francisco Tolmasky <email@hidden>)
 >Re: CALayer and frame (From: Bill Dudney <email@hidden>)
 >Re: CALayer and frame (From: Francisco Tolmasky <email@hidden>)

  • Prev by Date: Pushing the truth
  • Next by Date: Re: CALayer and frame
  • Previous by thread: Re: CALayer and frame
  • Next by thread: Re: CALayer and frame
  • Index(es):
    • Date
    • Thread