我想以一个角度旋转NSString。
但我不希望整个字符串旋转,而是希望字符串头留在原始位置。
如何让NSString围绕某个点旋转,但不是整个矩阵旋转......
好的,对不起,实际上我的问题是我想围绕某一点旋转,但CGContextRotateCTM是基于原点。所以我怎样才能将原点移动到某一点,当旋转后,我怎么能将起源点移回......
答案 0 :(得分:0)
据推测,您想要围绕锚点旋转UILabel。如果是这样的话,请按照DavidRönnqvisthere:
提升的方式完成#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];
}
如果您希望它围绕一端旋转,请使用CGPointMake(.. , ..)