所以我将我的时钟作为UIImageView。这完美的时钟不动。我很满意。
我将时钟之手作为另一个UIImageView,它放在时钟ImageView的顶部。
我想让我的时钟之手在10秒内旋转360度,但是棘手的部分是我想让它旋转而不是在时钟的TopLeft上的原点旋转ImageView放在一个点20,20 clockhand ImageView。
到目前为止,这是我的代码,它在10秒内旋转时钟指针360度,但它会围绕ImageView的topleft旋转。
CABasicAnimation *rotate;
rotate = [CABasicAnimation
animationWithKeyPath:@"transform.rotation"];
rotate.fromValue = [NSNumber numberWithFloat:0];
rotate.toValue = [NSNumber numberWithFloat:6.283185307];
rotate.duration = 10.00;
rotate.repeatCount = 1;
needleImageView.layer.anchorPoint = CGPointMake(0.5, 0.5);
[needleImageView.layer addAnimation:rotate forKey:@"10"];
任何人都可以提供一些关于让它围绕needleImageView的20,20点旋转的提示吗?
谢谢, -code
答案 0 :(得分:3)
默认情况下,将对中心应用变换。您需要更改图层的anchorPoint以进行更改。有关详细信息,请查看link text。
重要的是,如果更改anchorPoint,则视图的位置也会发生变化,因为图层的position属性与锚点有关。因此,您需要在更改anchotPoint后设置旧框架。
你需要做这样的事情。
// your image is 100 x 100 pixels and you want to make (20, 20) as the transformation center CGRect oldFrame = myView.frame; myView.layer.anchorPoint = CGPointMake(0.2, 0.2); myView.frame = oldFrame顺便说一下,我还没有编写代码,只是打字,所以可能会有一些拼写错误。
答案 1 :(得分:1)
您可以旋转超级视图或更改其根图层的anchorPoint属性,请参阅http://www.informit.com/blogs/blog.aspx?uk=Ask-Big-Nerd-Ranch-Rotating-an-iPhone-View-Around-a-Point