在视图上旋转UIButtons
我在UIView上有5个按钮,我想沿着圆形路径均匀地绘制,并让它们沿着该路径不断旋转。 要清楚,我不想旋转按钮本身,我只是希望他们沿着圆形路径移动。
管理这个最好的方法是什么?
为每个按钮创建一个UIBezierPath
或CGPath
,调整起始角度和结束角度以考虑每个按钮的初始起点。 然后为每个按钮/路径创建一个CAKeyframeAnimation,为其指定路径,将其设置为自动重复并将其添加到适当的按钮图层。
UIBezierPath
方法+bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:
将帮助您创建循环路径。 你需要计算正确的角度,但这只是一小部分的数学。
没有理由沿着路径单独为每个按钮设置动画。 你说你在UIView上有5个按钮。 只需旋转已添加到的视图,其他所有按钮都将旋转,从而获得与您要求的路径相同的效果。
技巧是你需要一个明确的动画而不是UIView动画快捷方式:
CABasicAnimation* rotationAnimation =
[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
[rotationAnimation setToValue:[NSNumber numberWithFloat:DegreesToRadians(360)]];
// Make a full rotation in five seconds
[rotationAnimation setDuration:5.0];
// Repeat forever.
[rotationAnimation setRepeatCount:HUGE_VALF];
// Make the animation timing linear
[rotationAnimation setTimingFunction:
[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionLinear]];
[[rotationView layer] addAnimation:rotationAnimation forKey:nil];
变量rotationView是包含所有按钮的视图。 在这一点上,你真正需要做的是计算你的按钮应该放置在哪里。 其他一切都是为你处理的。
链接地址: http://www.djcxy.com/p/74231.html上一篇: Rotating UIButtons on a view
下一篇: Animating layoutIfNeeded on UITableView without animating UITableViewCells