Skip navigation.
 
mlRe: CATextLayer and CAConstraint
FROM : Bill Dudney
DATE : Sun Nov 18 14:26:13 2007

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_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
mlCATextLayer and CAConstraint Aaron Tait Nov 18, 09:00
mlRe: CATextLayer and CAConstraint Bill Dudney Nov 18, 14:26
mlRe: CATextLayer and CAConstraint Aaron Tait Nov 18, 19:02
mlRe: CATextLayer and CAConstraint Scott Anguish Nov 19, 10:12
mlRe: CATextLayer and CAConstraint Paul Arthur Henrio… Nov 22, 16:53