object-ui之动画雪花降落实现

1.首先设置一下落雪的背景

//创建落雪
    UIImageView *bgView = [[UIImageView alloc]initWithFrame:[UIScreen mainScreen].bounds];
    bgView.image = [UIImage imageNamed:@"snowbg.jpg"];
    //设置图片填充模式
    bgView.contentMode = UIViewContentModeScaleAspectFill;
    //添加背景视图
    [self.view addSubview: bgView];
    //开始落雪
    [self startLink];

2.实现落雪花得方法和停止落雪的方法

//开始定时器
- (void) startLink
{
    //创建定时器
    _link = [CADisplayLink displayLinkWithTarget:self selector:@selector(startSnow)];
    //添加到运行循环
    [_link addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    //改变循环次数每秒执行60/4
    _link.frameInterval = 4;
}
//停止定时
- (void) stopLink
{
    [_link invalidate];
    _link = nil;
}

3.创建雪花

- (void) startSnow
{
    //创建雪花视图
    UIImageView *snow = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"雪花.png"]];
    //设置雪花中心点
    CGSize screenSize = [UIScreen mainScreen].bounds.size;
    //设置雪花中心点
    CGFloat x = arc4random_uniform(screenSize.width);
    CGFloat y = -snow.bounds.size.height*0.5;
    //设置雪花的中心点
    snow.center = CGPointMake(x, y);
    //随机获得雪花缩放的比例
    CGFloat scale = arc4random_uniform(31)/100.0+0.1;
    snow.transform = CGAffineTransformMakeScale(scale, scale);
    [self.view addSubview:snow];
    
    
    //添加动画降落
    [UIView animateWithDuration:10.0 animations:^{
        //旋转动画
        snow.transform = CGAffineTransformRotate(snow.transform, M_PI);
        //随机设置底部的坐标
        CGFloat x1 = arc4random_uniform(screenSize.width);
        CGFloat y1 = CGRectGetHeight(self.view.frame)+snow.bounds.size.height;
        snow.center = CGPointMake(x1, y1);
    } completion:^(BOOL finished) {
        //清除下落之后的雪花
        [snow removeFromSuperview];
    }];
}

代码已经打包到资源下载了(包含图片)。有兴趣的朋友可以下载来看看。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SwiftUI is a new framework introduced by Apple in 2019 for building user interfaces on all Apple platforms (iOS, iPadOS, macOS, watchOS, and tvOS). It provides a new way of declaratively building user interfaces using Swift code. Objective-C, on the other hand, is an object-oriented programming language that has been widely used for building Mac and iOS applications. It has been around for much longer than SwiftUI, and has a large and established developer community. Here are some key differences between the two: 1. Syntax: SwiftUI has a simpler and more intuitive syntax compared to Objective-C, which can be more verbose and difficult to read. 2. Declarative vs Imperative: SwiftUI is a declarative framework, which means you describe what your user interface should look like, and the framework takes care of rendering it on the screen. Objective-C, on the other hand, is an imperative language, which requires you to write code to manipulate the user interface elements directly. 3. Interoperability: SwiftUI and Objective-C can coexist in the same project, and it is possible to use SwiftUI components in Objective-C code. However, the reverse is not true, as Objective-C code cannot be used in SwiftUI. 4. Learning Curve: SwiftUI is generally considered easier to learn for new developers, whereas Objective-C has a steeper learning curve. Ultimately, the choice between SwiftUI and Objective-C depends on the specific needs and preferences of each developer and the project they are working on. Both frameworks have their strengths and weaknesses, and both can be used to build high-quality and performant applications.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值