使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在 viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。
1
2
3
4
5
6
|
-(void)viewDidLoad{
[super viewDidLoad];
self.pic = [UIImage imageNamed:@"snow.png"];//初始化图片
//启动定时器,实现飘雪效果
[NSTimer scheduledTimerWithTimeInterval:(0.2) target:self selector:@selector(ontime) userInfo:nil repeats:YES];
}
|
然后再实现定时器定时调用的ontime方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
-(void)ontime{
UIImageView *view = [[UIImageView alloc] initWithImage:pic];//声明一个UIImageView对象,用来添加图片
view.alpha = 0.5;//设置该view的alpha为0.5,半透明的
int x = round(random()%320);//随机得到该图片的x坐标
int y = round(random()%320);//这个是该图片移动的最后坐标x轴的
int s = round(random()%15)+10;//这个是定义雪花图片的大小
int sp = 1/round(random()%100)+1;//这个是速度
view.frame = CGRectMake(x, -50, s, s);//雪花开始的大小和位置
[self.view addSubview:view];//添加该view
[UIView beginAnimations:nil context:view];//开始动画
[UIView setAnimationDuration:10*sp];//设定速度
view.frame = CGRectMake(y, 500, s, s);//设定该雪花最后的消失坐标
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
|
分享到:
相关推荐
同样,也可以使用动画来模拟风向变化,让背景中的雪有移动的效果。 7. **代码示例** - Swift代码中,我们可以创建一个`SnowParticle`类来封装粒子的属性和行为,然后在`viewDidLoad`或`updateUIView`中初始化和...
这个“简单的时间选择器Nstimer”是一个实用工具,它提供了一个用户界面来控制`NSTimer`,允许用户进行暂停、清零等操作,非常适合学习`NSTimer`的基础用法和交互设计。 `NSTimer`是`NSRunLoop`的一部分,它不直接...
可以使用`CADisplayLink`或`NSTimer`来定时更新图层内容,以达到动画效果。 5. **处理循环和暂停**:为了实现无限循环或暂停/恢复动画,你需要维护一个当前帧索引,并在每次动画更新时增加该索引。当索引超出图像帧...
此外,为了实现平滑的动画效果,我们需要掌握NSTimer和CADisplayLink的使用。NSTimer可以定时触发更新,而CADisplayLink则会在每次屏幕刷新时调用指定的回调,这样可以确保动画的流畅性,特别是在处理高频率更新如...
这在实现倒计时、动画效果或者周期性任务时非常有用。`NSTimer`不是线程安全的,通常在主线程中创建和触发。 二、创建NSTimer的类方法 1. `+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval ...
此外,为了使动态效果更加流畅,开发者可能使用了`CADisplayLink`或`NSTimer`来精确控制动画的帧率。`CADisplayLink`会与屏幕刷新同步,确保每一帧都在屏幕更新之前完成,从而提供更连贯的视觉体验。 在实际开发中...
本教程将深入探讨如何在iPhone上实现帧动画的播放。 1. **UIKit动画框架** iOS中的动画主要由UIKit框架提供支持,其中`UIView`类包含了用于创建各种动画的方法。帧动画是通过`UIImageView`类的`animationImages`...
`NSTimer`可以让你的应用程序按照预设的时间间隔执行任务,比如更新UI、发送网络请求或者执行动画效果。下面将详细探讨`NSTimer`的工作原理、创建方法、常见用法以及注意事项。 ### NSTimer的工作原理 `NSTimer`并...
CADisplayLink与NSTimer都是用于在iOS开发中设置定时任务的重要工具,但它们各自的使用场景、工作原理以及优缺点都有所不同。 CADisplayLink是一个定时器对象,它将操作与显示器的刷新周期同步。这意味着,每当...
"02a - TimedAlert"可能是一个演示如何使用`NSTimer`来实现定时提醒的功能。在实际的项目中,这可能包括显示警告框、更新UI状态或其他特定任务。 总结,`NSTimer`在iOS开发中扮演着重要角色,尤其在实现定时功能时...
模仿腾讯新闻图片频道的图片浏览的幻灯片效果.
本教程将深入探讨`NSTimer`的使用,包括如何创建、启动、暂停以及取消定时器,并通过一个倒计时10秒的示例来实际操作。 首先,`NSTimer`是`NSRunLoop`的一部分,它会在运行循环的适当模式下触发。创建`NSTimer`通常...
虽然`NSTimer`没有直接提供暂停与恢复的方法,但可以通过以下方式间接实现: - **暂停**:在需要暂停时,调用`invalidate()`方法; - **恢复**:重新创建一个新的定时器,并调整`timeInterval`以补偿暂停的时间。 ...
这个"动画效果demo"是一个示例项目,专门展示了如何在iPhone平台上实现各种类型的动画。通过学习和分析这个demo,开发者可以深入理解并掌握UIKit动画机制,从而在自己的应用中创造出更加生动、流畅的交互体验。 一...
NSTimer-Blocks, 在NSTimer上提供块功能,简单分类 自述文件NSTimer上非常简单的类别,它可以使用块。工作原理我认为如果你使用的是一个块,你可以能不需要将任何用户指定的对象传递到计时器。 你只要从街区里得到你...
这些属性可以通过`CADisplayLink`或`NSTimer`定时更新,以达到平滑的动画效果。 4. **扩展UIView**:将上述功能封装到一个新的Swift类中,继承自`UIView`,并添加必要的属性和方法。这可能包括设置颜色、速度、大小...
在iOS开发中,实现iPhone跑马灯效果有多种方法,这里我们将探讨几种常用的技术和实践。 1. **利用UILabel属性**: UILabel是iOS中用于显示文本的基本控件,它提供了基本的跑马灯效果。通过设置`numberOfLines`为0...
代码实现上,我们可以使用`animate(withDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:)`这个UIView的动画方法来创建弹簧效果。例如: ```swift UIView.animate...
本示例"ios-贝塞尔曲线实现渐变动画效果.zip"聚焦于如何通过贝塞尔曲线(Bezier Curve)来创建出具有平滑过渡特性的渐变描点动画。贝塞尔曲线是一种在计算机图形学中广泛使用的数学工具,它能够帮助我们精确地控制...
通过修改CALayer的属性(如位置、大小、旋转角度、透明度等)并使用`CATransaction`来安排动画,可以实现各种动画效果。 3. **UIView动画**: 对于简单的动画,如移动、缩放、旋转,可以使用UIView的`...