iOS 动画 —— 飘落的雪花

iOS 动画这块还是很有意思的,本人决定以小 Demo 形式开始学习动画的路程。

GIF 为1秒的反复进行
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.backImageView];
    [NSTimer scheduledTimerWithTimeInterval:(0.05f) target:self selector:@selector(fallingSnows) userInfo:nil repeats:YES];
}

- (void)fallingSnows {
    // 图片
    UIImageView* fallingSnowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"snow"]];
    // 位置(横向距离的改变)
    CGFloat startX = roundf(random() % (int)SCREEN_WIDTH);
    CGFloat endX = roundf(random() % (int)SCREEN_WIDTH);
    // 大小比例和速度 的微调
    CGFloat scale = 1 / round(random() % 100) + 1.0;
    CGFloat speed = 1 / round(random() % 100) + 1.0;
    // 大小和透明
    fallingSnowView.frame = CGRectMake(startX, -100.0, 25.0 * scale, 25.0 * scale);
    fallingSnowView.alpha = 0.5;
    [self.view addSubview:fallingSnowView];
    // 动画效果
    [UIView animateWithDuration:5*speed animations:^{
        fallingSnowView.frame = CGRectMake(endX, SCREEN_HEIGHT, 25.0 * scale, 25.0 * scale);
    }];
}

飘落的雪花核心代码如上,相对来说,比较简单,小小记录下。

PS:场景图片来自【iOS开发范例实战宝典.进阶篇】。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,322评论 25 709
  • 本篇涵盖各种直播动画,跳转,过渡动画等. 1.分享iOS中实现navigationController全屏手势滑动...
    守护地中海的花阅读 3,474评论 0 1
  • 咪蒙写了一篇助理月薪五万的文章,推荐大家看看,看完之后,你的感受是? 看了文章之后,才明白为什么你的年薪仅仅只是是...
    Mjinxiu无忧阅读 1,196评论 0 3
  • 你连自己公司有地下室都不知道,之前开会还有谈论过。----Vlience 如果一个人对自己的公司的情况都不了解,又...
    victoriapoint阅读 3,345评论 0 1