第九天 雪花《苹果iOS实例编…

原文地址:第九天 雪花《苹果iOS实例编程入门教程》 作者:苹果iphonesdk

DAY NINE – Snow Fall[转载]第九天 <wbr>雪花《苹果iOS实例编程入门教程》

今天来建立一个 iPhone app,给你的iPhone制作一场雪景。

纲要:
- 在程序显示前运行代码 -
- UIImageView 的运用 -
- 关于iPhone的“Utility Application” 运用 -
- onTimer 代码运用 -
- onAnimation 代码运用 -


首先运行以安装好的 xCode

选择: File->New Project.

从 "New Project" 窗口
 
选择 : iPhone OS ->Applications-> Utility Application
命名 : 我这里命名为 “SnowFall”

 

(1)  在xCode打开 MainView.h 文件,加入下面代码

#import

@interface MainViewController : UIViewController {
 UIImage* flakeImage;
}
@property (nonatomic, retain) UIImage* flakeImage;
- (void)onTimer;
- (void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
@end

 
(2)  在xCode打开 MainView.m 文件,加入下面代码

#import "MainViewController.h"
#import "MainView.h"

@implementation MainViewController

@synthesize flakeImage;

- (void)viewDidLoad {
 [super viewDidLoad];
 
 // 把背景颜色设置为冷色
 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];
}

// Timer event is called whenever the timer fires
- (void)onTimer
{
 //建立一个雪花图片 flake image
 UIImageView* flakeView = [[UIImageView alloc] initWithImage:flakeImage];
 
 //use the random() function to randomize up our flake attributes
 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;
 
 // set the flake start position
 flakeView.frame = CGRectMake(startX, -100.0, 25.0 * scale, 25.0 * scale);
 flakeView.alpha = 0.25;
 
 // put the flake in our main view
 [self.view addSubview:flakeView];
 
 [UIView beginAnimations:nil context:flakeView];
 // set up how fast the flake will fall
 [UIView setAnimationDuration:5 * speed];
 
 // set the postion where flake will move to
 flakeView.frame = CGRectMake(endX, 500.0, 25.0 * scale, 25.0 * scale);
 
 // set a stop callback so we can cleanup the flake when it reaches the
 // end of its animation
 [UIView setAnimationDidStopSelector:@selector(onAnimationComplete:finished:context:)];
 [UIView setAnimationDelegate:self];
 [UIView commitAnimations];
 
}
- (void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
 
 UIImageView *flakeView = context;
 [flakeView removeFromSuperview];
 // open the debug log and you will see that all flakes have a retain count
 // of 1 at this point so we know the release below will keep our memory
 // usage in check
 NSLog([NSString stringWithFormat:@"[flakeView retainCount] = %d", [flakeView retainCount]]);
 [flakeView release];
 
 
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 // Return YES for supported orientations
 return (interfaceOrientation == UIInterfaceOrientationPortrait);
}


- (void)didReceiveMemoryWarning {
 [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
 // Release anything that's not essential, such as cached data
}


- (void)dealloc {
 [flakeImage release];
 [super dealloc];
}

@end

 

(3) 导入下面图片文件

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

[转载]第九天 <wbr>雪花《苹果iOS实例编程入门教程》

在xCode下右键点击 SnowFall->Add->Existing Files; 在 SnowFall 文件夹内,选择下载好的图片,按 Add


最后在 xCode 选择 Build->Build and Go; Save All.

 

下载今天教程文件: Day09

文章本人经过修改及测试,希望大家多多交流。欢迎转载,但请注明出处,多珍惜别人的劳动成果,谢谢大家。

一切版权归http://blog.sina.com.cn/iphonesdk 所有

更多关于iPhone编程的内容可以参阅下书,
链接:


 

你可能感兴趣的:(iphone)