该app为应用的功能为制作一场雪景

现版本 SDK 8.4 Xcode

纲要:
- UIImageView 的运用
- onTimer 代码运用
- onAnimation 代码运用

运行Xcode 选择 Create a new Xcode project ->Single View Application 命名 SnowFall

(1)  在xCode打开 ViewController.h 文件

(红色为所添加的代码)

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController{

UIImage *flakeImage;

}

@property(nonatomic,retain)UIImage *flakeImage;

-(void)onTimer;

-(void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;

@end

(2)  在xCode打开 ViewController.m 文件

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize flakeImage;

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

// RGB和alpha值的范围是0~1 Alpha透明度

// 把背景颜色设置为冷色

self.view.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:1.0 alpha:1.0];

// 导出雪花图片

flakeImage = [UIImage imageNamed:@"flake.png"];

// 每秒二十次的调用onTimer事件

[NSTimer scheduledTimerWithTimeInterval:(0.05) target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

}

-(void)onTimer

{

//建立一个ImageView 放置雪花图片 flake image

UIImageView *flakeView = [[UIImageView alloc]initWithImage:flakeImage];

//随即生成参数坐标

int startX = round(random()%320);

int endX = round(random()%320);

double scale = 1/round(random()%100)+1.0;

double speed = 1/round(random()%100)+1.0;

//设置雪花图片出现的坐标和透明度 即控制UIView的大小和该UIView在superview中的相对位置、透明度  基准为左上角

flakeView.frame = CGRectMake(startX, -100.0, 25.0*scale, 25.0*scale);

flakeView.alpha = 0.25;

//将flakeView添加进主视图

[self.view addSubview:flakeView];

//在 Objective-C 和 Core Foundation 对象之间进行转换时,就需要使用 Bridge cast(待详细研究)

[UIView beginAnimations:nil context:(__bridge void *)(flakeView)];

//动画时常

[UIView setAnimationDuration:5*speed];

//动画结束 图片位置

flakeView.frame = CGRectMake(endX, 500.0, 25.0*scale, 25.0*scale);

//*1*动画结束时调用 清理flakeView

[UIView setAnimationDidStopSelector:@selector(onAnimationComplete:finished:context:)];

[UIView setAnimationDelegate:self];

[UIView commitAnimations];

}

-(void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context{

UIImageView *flakeView = (__bridge UIImageView *)(context);

[flakeView removeFromSuperview];

//   NSLog(NSString stringWithFormat:@"[flakeView retainCount] = %d", [flakeView retainCount]]);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

(3) 导入下面图片文件

下载下面图片,放入 SnowFall 文件夹内并命名为下面名称
flake.png

选择: File -> Save

最后在 xCode 选择 Build and then Running

(4)模拟器效果图

保留*1*处代码即动画结束后清理flake view效果为

不保留*1*处代码,效果为

本文源于网上博客教程,经过本人修改和测试。原blog地址 http://blog.sina.com.cn/s/blog_5fae23350100e1uk.html

六、雪花《苹果iOS实例编程入门教程》的更多相关文章

  1. 五、点数器《苹果iOS实例编程入门教程》

    该app为应用的功能为一个简单的数数程序 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View Applic ...

  2. 四、卫星定位《苹果iOS实例编程入门教程》

    该app为应用的功能为用iPhone 显示你现在的位置 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View ...

  3. 三、图像移动《苹果iOS实例编程入门教程》

    该app为应用的功能为动态移动动画 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View Applicati ...

  4. 二 、打开地图《苹果iOS实例编程入门教程》

    该app为应用的功能为给你的iPhone打开google地图有效地址连接 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Si ...

  5. 一、午夜倒数《苹果iOS实例编程入门教程》

    该app为应用的功能为计算离午夜12:00点的剩余时间 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View ...

  6. 七、考反映小游戏《苹果iOS实例编程入门教程》

    该app为应用的功能为一个简单的考反应游戏 纲要:-UIButton, UILabel, UIImageView 的运用:-利用rendom增加游戏可玩性: 游戏说明: 在按下开始游戏后,分为三盏的指 ...

  7. 【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!

    C语言/C++编程学习:一个简单的实例 让我们来看一个简单的C语言程序.从下面的程序可以看出编写C语言程序的一些基本特征.   如果你能知道该程序将会在显示器上显示一些内容,那说明你还是知道一些的! ...

  8. VS2010/MFC编程入门教程之目录和总结

    鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够.以此教程的知识为基础,学习VS2010/MFC较为深入的内容 ...

  9. (转)VS2010-MFC编程入门教程之目录和总结

     目前该教程可以到鸡啄米编程课堂去学习,阅读体验更好,更适合在线学习. 原文目录及链接: 一.VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入 ...

随机推荐

  1. C与C++之间相互调用

    1.导出C函数以用于C或C++的项目 如果使用C语言编写的DLL,希望从中导出函数给C或C++的模块访问,则应使用 __cplusplus 预处理器宏确定正在编译的语言.如果是从C++语言模块使用,则 ...

  2. android 入门-工序

    页面: 1.启动页 2.引导页 3.主页面 自定义控件: 轮播控件 轮播列表控件 弹出控件 加载控件 引导页控件 下拉刷新 上拉加载控件

  3. CodeIgniter类的使用

    Email 类 在配置文件中设置 Email 参数 如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件.创建一个新文件称为email.php ,添加$config数组在该文件中.然后将该 ...

  4. VS2013缺少报表工具

    问题1:缺少报表设计工具--即rdlc无法打开设计器 原因:缺少SQL Server Data Tools(SSDT)工具 解决:安装ssdt即可 SSDT下载地址:https://msdn.micr ...

  5. 用JAXP的SAX方式解析XML文件

    简单用JAXP的SAX方式(事件驱动)解析XML文件: 文件(1.XML) <?xml version="1.0" encoding="UTF-8" st ...

  6. poj3107 求树的重心(&& poj1655 同样求树的重心)

    题目链接:http://poj.org/problem?id=3107 求树的重心,所谓树的重心就是:在无根树转换为有根树的过程中,去掉根节点之后,剩下的树的最大结点最小,该点即为重心. 剩下的数的 ...

  7. psql-05数据库,模式

    数据的组织结构 数据库:表,索引:数据行 PostgreSQL中一个服务(实例)可以有多个数据库:而一个数据库不能属于多个实例; 数据库 创建数据库 create database name [own ...

  8. iOS10 UI教程视图的几何形状

    iOS10 UI教程视图的几何形状 视图属性中的一部分属性可以让定义的视图绘制在屏幕上.在讲解这些属性前,我们首先将讲解,定义视图的几何形状所涉及到的结构类型.这些结构类型如下: CGPoint:它表 ...

  9. Xamarin.iOS编译出错

    Xamarin.iOS编译出错 错误信息:C:/Program Files(x86)/Reference Assemblies/Microsoft/Framework/Xamarin.iOS/v1.0 ...

  10. 学习笔记总结---关于sass

    今天跟大家共同分享交流一下关于sass的知识点: sass的产生: css不是一种编程语言,我们可以用它开发网页样式,但不能用它进行编程.它没有常量,变量,也没有条件语句,只是对属性一行行的描述,资料 ...