CATextLayer вращается?

Это действительно должно работать, но это не так:

CATextLayer* textLayer = [CATextLayer layer];
textLayer.string = @"text";
[textLayer setValue:[NSNumber numberWithDouble:M_PI / 2.f forKey:@"transform.rotation"];
[self addSublayer:textLayer];

на самом деле, когда я печатаю значение в transform.rotation, он показывает правильный ответ. он просто не рисует повернутый textLayer!

NSLog(@"rotation %@", [textLayer valueForKey:@"transform.rotation"]);

Что я делаю не так?


person olynoise    schedule 13.02.2012    source источник


Ответы (2)


Попробуйте следующий код:

textLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMakeRotation(M_PI_2));

вместо:

[textLayer setValue:[NSNumber numberWithDouble:M_PI / 2.f forKey:@"transform.rotation"];
person sch    schedule 13.02.2012
comment
Это сделало это! Хотя я до сих пор не понимаю, почему другой метод не сработал. По документации так и должно быть. Спасибо! - person olynoise; 14.02.2012

CALayer запомнит любое значение, которое вы ему дадите. Я считаю, что у вас это не так, потому что вам нужно вращаться с помощью «transform.rotation.z».

person ZaBlanc    schedule 13.02.2012
comment
нет... в документации сказано, что вращение такое же, как и rotate.z, я просто попробовал это, чтобы убедиться... но не повезло. - person olynoise; 14.02.2012