//头像旋转
// CABasicAnimation* rotationAnimation1;
// rotationAnimation1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
// rotationAnimation1.toValue = [NSNumber numberWithFloat: M_PI * 1.0 ];
// rotationAnimation1.duration = 360.f/40;
// rotationAnimation1.cumulative = YES;
// rotationAnimation1.repeatCount = INT_MAX;
// [_headImageView.layer addAnimation:rotationAnimation1 forKey:@"rotationAnimation"];
2.重写view,画布扇形,然后进行旋转,模仿雷达效果
1)重写View
#import
@interface XHRadarIndicatorView : UIView
@property (nonatomic, assign) CGFloat radius;
//半径
@end
#import "XHRadarIndicatorView.h"
#import
#define INDICATOR_START_COLOR [UIColor colorWithRed:1 green:1 blue:1 alpha:1]
#define INDICATOR_END_COLOR [UIColor colorWithRed:1 green:1 blue:1 alpha:0]
@implementation XHRadarIndicatorView
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
// Drawing code
//An opaque type that represents a Quartz 2D drawing environment.
// //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画
CGContextRef context
= UIGraphicsGetCurrentContext();
//画扇形,也就画圆,只不过是设置角度的大小,形成一个扇形
// UIColor *aColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1.0];
UIColor *aColor = [UIColor clearColor];
// UIColor *aColor = RGBCOLOR(100, 20, 211);
CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色
CGContextSetLineWidth(context, 0);//线的宽度
//以self.radius为半径围绕圆心画指定角度扇形
CGContextMoveToPoint(context, self.center.x, self.center.y);
CGContextAddArc(context, self.center.x, self.center.y, self.radius, -59.8 * M_PI / 180,
-60 * M_PI / 180, 1);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFillStroke); //绘制路径
//多个小扇形构造渐变的大扇形
for (int i = 2;
i<=140; i++) {
//画扇形,也就画圆,只不过是设置角度的大小,形成一个扇形
UIColor *aColor = [UIColor colorWithRed:255/255.0f green:255/255.0fblue:255/255.0f alpha:i/450.0f];
CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色
CGContextSetLineWidth(context, 0);//线的宽度
//以self.radius为半径围绕圆心画指定角度扇形
CGContextMoveToPoint(context, self.center.x, self.center.y);
CGContextAddArc(context, self.center.x, self.center.y, self.radius, (-90+
i) * M_PI / 180, (-90 +
i - 1) * M_PI / 180, 1);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFillStroke); //绘制路径
}
}
@end
2)初始化,直接用
//圆环线
_indicatorView = [[XHRadarIndicatorView alloc] init];
[_mapView addSubview:_indicatorView];
_indicatorView.frame = _mapView.bounds;
_indicatorView.backgroundColor =
[UIColor clearColor];
_indicatorView.radius = 180;//215
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ];
rotationAnimation.duration = 360.f/60;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = INT_MAX;
[_indicatorView.layer addAnimation:rotationAnimationforKey:@"rotationAnimation"];
同车项目首页用到的