我想将我的imageview旋转90度绕锚点。你可以在这里看到我想要达到的目标。
我有这段代码。
CGFloat DegreesToRadians(CGFloat degrees)
{
return degrees * M_PI / 180;
}
NSNumber* DegreesToNumber(CGFloat degrees)
{
return [NSNumber numberWithFloat:
DegreesToRadians(degrees)];
}
-(IBAction)rotate:(id)sender{
CABasicAnimation *rotationAnimation = [CABasicAnimation
animationWithKeyPath:@"transform.rotation.y"];
[rotationAnimation setFromValue:DegreesToNumber(0)];
[rotationAnimation setToValue:DegreesToNumber(90)];
[rotationAnimation setDuration:3.0f];
[rotationAnimation setRepeatCount:1];
[[[self imgShare] layer] addAnimation:rotationAnimation forKey:@"rotate"];
}
有一个观点问题。首先,当它旋转90度时,它立即翻转回其原始状态。此外,我不知道如何将它转变为锚点。
任何帮助?
答案 0 :(得分:1)
试试这个:
self.imgShare.transform = CGAffineTransformMakeRotation(M_PI/2);
答案 1 :(得分:0)
您正在使用仅处理动画部分的CABAsicAnimation
。旋转后轮换视图是您的责任。
因此,您应该在旋转后更改视图的transform属性。
self.imgShare.transform = CGAffineTransformMakeRotation(M_PI/2);
针对anchorPoint
的问题。每个UIView
都由CALayer
支持,每个CALayer
都有一个anchorPoint
属性。只需更改视图anchorpoint,您就可以围绕该点旋转视图。
anchorPoint
默认为0.5,0.5。将其更改为0.0到1.0之间。