2012-02-13 4 views
3

Это должно реально работать, но это не так: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"]); 

Что я делаю неправильно?

ответ

7

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

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

вместо:

[textLayer setValue:[NSNumber numberWithDouble:M_PI/2.f forKey:@"transform.rotation"]; 
+0

Вот и все! Хотя я до сих пор не понимаю, почему другой метод не работал. Согласно документации, это действительно должно быть. Благодаря! – olynoise

0

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

+0

Нету ... документация говорит, что «вращение» так же, как «rotation.z» я просто попытался это обязательно ... но не повезло. – olynoise

Смежные вопросы