1

我在 a 中显示一些文本,CATextLayer但它太大以适合定义的矩形。我想让文字慢慢旋转,这样它就可以被阅读了。我不知道该怎么做。我希望有一种相对简单的方法可以做到这一点,如果不是有人知道示例或教程的 URL,则显示/教授如何做这样的事情。

    CATextLayer *label = [[CATextLayer alloc] init];
    NSRect labelRect;
    labelRect.origin.x = 20;
    labelRect.origin.y = -height / 3.5;
    labelRect.size.width = width - 40;
    labelRect.size.height = height;
    [label setFont:@"Helvetica-Bold"];
    [label setFontSize: fontSize];  
    [label setFrame:labelRect];
    [label setString:@"Some really long menu item that won't fit"];
    [label setAlignmentMode:kCAAlignmentLeft];
    [label setForegroundColor:whiteColor];

更新:我想我想描述的是文本本身会旋转。像 html marquee 标记之类的东西会做。

4

1 回答 1

1

这对我有用,它会帮助你尝试这个....

CGFloat radians = atan2f(_userResizableView2.transform.b, _userResizableView2.transform.a);

CGFloat flip=((UITextView*)_userResizableView2.contentView).transform.a;
NSLog(@"Flip x: %f Y : %f",((UITextView*)_userResizableView2.contentView).transform.a,((UITextView*)_userResizableView2.contentView).transform.b);
CGFloat degrees = radians * (180 / M_PI);
NSLog(@"Degree :%f",degrees);
float radiansToRotate = DEGREES_TO_RADIANS( -degrees );
CATransform3D zRotation;
zRotation = CATransform3DMakeRotation(radiansToRotate,0, 0, 1.0);
titleLayer.transform = CATransform3DScale(zRotation,flip, 1, 1);
于 2016-07-15T06:48:29.603 回答