【code_小马】OC 类似于雷达的动画

我们是工程师 ——加油 !

CALayer篇:

使用动画组(CAAnimationGroup)、CAReplicatorLayer 在 CAShaperLayer实现的下图gif中的效果:

【code_小马】.gif
  • 没有UI设计师,我的配图依旧那么通俗,O(∩_∩)O哈哈~

####### 来~ 撸代码!

1.这里还用看么。。。直接看3后边的吧

#define Y_W  [UIScreen mainScreen].bounds.size.width

@interface ViewController ()
{
    //浅灰色的那个图层
    UIView * yg_backView;
    //黄色的那个图层
    CAShapeLayer * yg_animation_shapeLayer;
}

/**replicatorLayer*/
@property (nonatomic,strong) CAReplicatorLayer * yg_replicatorLayer;

@end

2.这里还用看么。。。直接看3后边的吧

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    /**设置主界面*/
    [self setUI];
}

3.布局UI

-(void)setUI
{
  
    self.view.backgroundColor = [UIColor whiteColor];
    /**加一个动画开始的按钮*/
    UIButton * button = [UIButton buttonWithType:(UIButtonTypeCustom)];
    [button setTitle:@"show" forState:(UIControlStateNormal)];
    button.frame = CGRectMake(Y_W-150, 80, 80, 60);
    button.layer.masksToBounds = YES;
    button.layer.cornerRadius = 4;
    button.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:button];
    [button addTarget:self action:@selector(showAnimation) forControlEvents:(UIControlEventTouchUpInside)];

    /**动画背景图*/
    yg_backView = [[UIView alloc]init];
    yg_backView.frame = CGRectMake(0, 150, Y_W, 200);
    [self.view addSubview:yg_backView];
    yg_backView.backgroundColor = [UIColor lightGrayColor];
    yg_backView.clipsToBounds = YES;
    
    /**动画图层,就是不停变大的那个圆*/
    yg_animation_shapeLayer = [[CAShapeLayer alloc]init];
    yg_animation_shapeLayer.backgroundColor = [UIColor yellowColor].CGColor;
    yg_animation_shapeLayer.bounds = CGRectMake(0, 0, 20, 20);
    yg_animation_shapeLayer.cornerRadius = 10;
    yg_animation_shapeLayer.position = CGPointMake(Y_W/2, 100);

    /**复制图层,可以不设置bound或frame*/
    _yg_replicatorLayer = [CAReplicatorLayer layer];
    _yg_replicatorLayer.backgroundColor = [UIColor cyanColor].CGColor;
    [_yg_replicatorLayer addSublayer:yg_animation_shapeLayer];//把动 画图层(shaperLayer) 关联到 复制图层(replicatorLayer)上
    _yg_replicatorLayer.instanceCount = 3.0;//三个复制图层
    _yg_replicatorLayer.instanceDelay = 0.3;//复制间隔时间为0.3秒
    _yg_replicatorLayer.repeatCount = MAXFLOAT;
    [yg_backView.layer addSublayer:_yg_replicatorLayer];

}

4.展示动画

-(void)showAnimation
{
    
    /**放大的动画*/
    CABasicAnimation * yg_transform_animation = [CABasicAnimation animationWithKeyPath:@"transform"];
    NSValue * yg_value = [NSValue valueWithCATransform3D:CATransform3DMakeScale(10, 10, 1)];
    yg_transform_animation.toValue = yg_value;
    yg_transform_animation.duration = 2;
    
    /**透明度动画---->(也可以直接设置CAReplicatorLayer的instanceAlphaOffset来实现,记得提前设置shaperLayer的不透明度)*/
    CABasicAnimation * yg_alpha_animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    yg_alpha_animation.fromValue = [NSNumber numberWithInt:1];
    yg_alpha_animation.toValue = [NSNumber numberWithFloat:0.1];
    yg_alpha_animation.duration = 2;
    
    /**动画组*/
    CAAnimationGroup * yg_animationGroup = [[CAAnimationGroup alloc]init];
    yg_animationGroup.animations = @[yg_transform_animation,yg_alpha_animation];
    yg_animationGroup.duration = 2;
    yg_animationGroup.repeatCount = MAXFLOAT;
    [yg_animation_shapeLayer addAnimation:yg_animationGroup forKey:nil];//将动画组 添加到 shapeLayer上
    
}

写完喽...对了,补充一下

//想用instanceAlphaOffset实现透明度变化的,可以参考下下面的代码
 
 yg_animation_shapeLayer.opacity = 0.7;

  _yg_replicatorLayer.instanceAlphaOffset = -0.4;

【code_小马】

晌午时光

很喜欢的一篇文章,拿出来和大家分享
【第十集】

阿福毫不费力的把我压在身下,受伤的腿使我根本无法挣扎,我使劲的大喊却被雷雨声淹没。他一把揪扯开我的衬衫,我圆润的房在他手里微微发抖,昏黄的灯下赤裸的身体显得格外诱人。    “妖精!”阿福惊呼,他抓住我的手臂挺身刺入 闪电之下,我清清楚楚的看到他因欲而兴奋的变形的脸。    “如风!”在被他穿透的一刻,我大叫。    接着我便看到了如风。    阿福未来得及抽动一下就倒在了我身上,如风的刀穿过阿福划破了我的小腹,我的身体霎那间被染红。    如风提起阿福的尸体扔在地上,他脱下T恤裹住我抱在怀里,我一句话都说不出,只是静静地流泪。    门口被如风打倒的两人被屋内血腥吓呆,黄毛对躺在地上动不了的另一个小弟说:“我……我去找程老大来!”说罢就一瘸一拐的跑了。    如风紧紧抱着我,眼睛血红,额上暴出青筋。    我望着阿福的尸体说:“你把他杀了?”    如风点头,从未流过泪的他竟然默默掉下了眼泪,他使劲的抓着我的肩膀好像想把我按到他的身体里去。    如风的眼泪滴落在我脸上,滚烫的晕开,我淡淡的说:“我们就一块死在这儿吧,好么?阿风,我们一起死吧。”    “好!”如风说,他坚定的望着我,我感到分外的安宁,可以比拟死亡的安宁。    我们互相搂抱着,像没有生命的两个石雕,所有活着的希望与勇气都消失了。我当时只是想,我们要一起死了,就这么一起死了也挺好的,这样就永远都不会分开。     不久门口穿来了阵阵的机车轰鸣声,房门被踹开了,很多人站在门外,一个身材高大面无表情的中年男子走了进来。    “老大!就是这小子干的!他杀了阿福!”黄毛从中年男子的身后走出指着如风喊道。    中年男子从阿福的尸体上跨过,走到我和如风面前。我并未觉得可怕与慌张,也许是因为当时我虽活着却跟死了没什么两样,否则他身上散发的那种一种逼人的气势,不会让我毫无感觉。

点击阅读文章第九集

点击阅读文章第十一集
文章后续更新中,喜欢请关注哦 🌹

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容