Re: CATextLayer and CAConstraint
Re: CATextLayer and CAConstraint
- Subject: Re: CATextLayer and CAConstraint
- From: Bill Dudney <email@hidden>
- Date: Sun, 18 Nov 2007 06:26:13 -0700
Hi Aaron,
When trying to manipulate layers like this its best if you use a layer
hosting view rather than a layer backed view. If you rely on the layer
the view creates for you its often the case that you get weird
behavior like this.
Instead in your awakeFromNib method you can make your view layer
hosting;
myLayer = [CALayer layer];
// other myLayer initilization
[myView setLayer:myLayer];
[myView setWantsLayer:YES];
then you can add sublayers as in your addFileNameLayer: below and
everything should work.
As an alternative you could simply create a text field as a label and
add it as a subview of your current setup and it will become layer
backed since you are adding it to a view that is layer backed.
HTH,
-bd-
http://bill.dudney.net/roller/objc
On Nov 18, 2007, at 1:00 AM, Aaron Tait wrote:
I've been pulling my hair out trying to get a CATextLayer to work
with a couple of CAConstraints. The following is a method
implemented in a layer backed view and the following call is made in
the view's awakeFromNib:
self.layer.layoutManager = [CAConstraintLayoutManager layoutManager];
The method is as follows:
-(void)addFileNameLayer:(NSString *)fileName
{
CATextLayer * fileNameLayer = [CATextLayer layer];
fileNameLayer.string = fileName;
fileNameLayer.name = @"fileNameLayer";
fileNameLayer.fontSize = 14.0;
fileNameLayer.alignmentMode = kCAAlignmentCenter;
fileNameLayer.wrapped = YES;
fileNameLayer.anchorPoint = CGPointMake(0.5, 0.5);
fileNameLayer.bounds = CGRectMake(0, 0, 320, 50);
[fileNameLayer addConstraint:[CAConstraint
constraintWithAttribute:kCAConstraintMidX relativeTo:@"superlayer"
attribute:kCAConstraintMidX]];
[fileNameLayer addConstraint:[CAConstraint
constraintWithAttribute:kCAConstraintMidY relativeTo:@"superlayer"
attribute:kCAConstraintMidY offset:-100]];
[self.layer addSublayer:fileNameLayer];
}
When the code executes, it displays nothing. I also add another
plain old CALayer before I call this method with similar constraints
and it works out fine. Anyone help would be appreciated.
-Aaron
_______________________________________________
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