FROM : Aaron Tait
DATE : Sun Nov 18 19:02:15 2007
Bill, I tried your solution but it did not help. Fortunately however,
I have found a working solution. It looks like the constraints mess
with the sizing and bounds of my CATextLayer making it only 1 unit in
size. I have added the following constraint and it produces a
desirable result:
[fileNameLayer addConstraint:[CAConstraint
constraintWithAttribute:kCAConstraintWidth relativeTo:@"superlayer"
attribute:kCAConstraintWidth]];
-Aaron
On 18-Nov-07, at 8:26 AM, Bill Dudney wrote:
> 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>
>
DATE : Sun Nov 18 19:02:15 2007
Bill, I tried your solution but it did not help. Fortunately however,
I have found a working solution. It looks like the constraints mess
with the sizing and bounds of my CATextLayer making it only 1 unit in
size. I have added the following constraint and it produces a
desirable result:
[fileNameLayer addConstraint:[CAConstraint
constraintWithAttribute:kCAConstraintWidth relativeTo:@"superlayer"
attribute:kCAConstraintWidth]];
-Aaron
On 18-Nov-07, at 8:26 AM, Bill Dudney wrote:
> 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 mails | Author | Date |
|---|---|---|
| Aaron Tait | Nov 18, 09:00 | |
| Bill Dudney | Nov 18, 14:26 | |
| Aaron Tait | Nov 18, 19:02 | |
| Scott Anguish | Nov 19, 10:12 | |
| Paul Arthur Henrio… | Nov 22, 16:53 |






Cocoa mail archive

