NSString を角度で回転させたい。
しかし、弦全体を回転させたくありません。代わりに、弦の頭を元の場所に留めておきたいのです。
どうすれば NSString を特定のポイントを中心に回転させることができますが、マトリックス全体を回転させることはできません...
OK、申し訳ありませんが、実際には私の問題は特定の点を中心に回転したいのですが、CGContextRotateCTMは原点に基づいています.だから、回転後に原点を特定の点に移動するにはどうすればよいですか?後ろを向く……
おそらく、アンカーポイントを中心にUILabelを回転させたいと考えています。もしそうなら、ここでDavidRönnqvistから持ち上げられたように次のように行われます:
#define DEGREES_TO_RADIANS(angle) (angle/180.0*M_PI)
- (void)rotateText:(UILabel *)label
aroundPoint:(CGPoint)rotationPoint
duration:(NSTimeInterval)duration
degrees:(CGFloat)degrees {
/* Setup the animation */
[UIView animateWithDuration:duration delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
CGPoint transportPoint = CGPointMake((rotationPoint.x - CGRectGetMinX(label.frame))/CGRectGetWidth(label.bounds),
(rotationPoint.y - CGRectGetMinY(label.frame))/CGRectGetHeight(label.bounds));
[label.layer setAnchorPoint:transportPoint];
[label.layer setPosition:rotationPoint]; // change the position here to keep the frame
[label.layer setTransform:CATransform3DMakeRotation(DEGREES_TO_RADIANS(degrees), 0, 0, 1)];
} completion:nil];
}
端を中心に回転させたい場合は、を使用してそこにアンカーポイント(メソッドのaroundPoint)を設定します。CGPointMake(.. , ..)