使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。
-(void)viewDidLoad{
[super viewDidLoad];
self.pic = [UIImage imageNamed:@"snow.png"];//初始化图片
//启动定时器,实现飘雪效果
[NSTimer scheduledTimerWithTimeInterval:(0.2) target:self selector:@selector(ontime) userInfo:nil repeats:YES];
}
然后再实现定时器定时调用的ontime方法:
-(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];
}
原文地址:
http://www.voland.com.cn/the-use-of-a-simple-nstimer-with-uiview-animation-effects-to-achieve-snowing
分享到:
相关推荐
iOS实现轮盘动态效果需要使用到多种技术,包括iOS平台上的绘图和动画技术、使用定时器实现动画效果、自定义UIView实现轮盘动态效果、使用UILabel实现评价标签、使用NSTimer实现动画延迟等。只有掌握这些技术,才能...
本资源"ios-印象笔记动画效果.zip"包含了一个名为"EvernoteAnimation"的项目,旨在帮助开发者深入理解并实现与印象笔记类似的高质量视图动画。 1. **视图动画基础**: 视图动画是iOS应用中常见的一种用户界面动态...
代码实现上,我们可以使用`animate(withDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:)`这个UIView的动画方法来创建弹簧效果。例如: ```swift UIView.animate...
此外,为了使动画更加流畅,开发者可能会使用CADisplayLink或者NSTimer来精确控制动画帧率。这种方式可以确保动画在不同设备上表现一致,特别是在高性能要求的场景下。 在压缩包文件"DouYinLoadBar"中,可能包含了...
创建`NSTimer`通常使用`scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:`方法,参数包括时间间隔、目标对象、选择器、用户信息和是否重复。例如: ```swift let timer = Timer.scheduledTimer...
为了实现动画,我们将使用`UIView`的动画方法,如`animate(withDuration:animations:)`或`UIViewPropertyAnimator`。这些方法允许我们在指定的时间内改变视图的属性,如位置、大小或透明度。在我们的场景中,我们...
图层可以叠加,具有透明度、变换、内容等属性,使得动画实现更加灵活。 2. UIView动画: UIView动画是iOS开发中最常用的动画方式,它基于UI视图进行操作。UIView动画主要包括基本动画、关键帧动画、组合动画等。...
7. **动画执行**:通过修改渐变层的内径、透明度等属性,配合`UIView.animate(withDuration:animations:)`或`CATransaction`来实现动画效果。 在提供的压缩包文件`alsedi-RippleEffectView-76f14ee`中,可能包含了...
通过修改CALayer的属性(如位置、大小、旋转角度、透明度等)并使用`CATransaction`来安排动画,可以实现各种动画效果。 3. **UIView动画**: 对于简单的动画,如移动、缩放、旋转,可以使用UIView的`...
然而,由于其局限性,单纯使用UIView动画可能无法实现水波扩散的细腻动态效果。 2. Core Animation: Core Animation允许我们对CALayer进行更底层的操作,能够实现更为复杂和高性能的动画。水波扩散效果可以通过...
这可以通过实现`CAAnimationDelegate`协议来完成,或者直接使用`CADisplayLink`或`NSTimer`来控制每一帧的更新。"动画效果demo"可能展示了如何自定义动画曲线、动画速度以及更复杂的交互响应。 五、互动动画 在某些...
这在实现倒计时、动画效果或者周期性任务时非常有用。`NSTimer`不是线程安全的,通常在主线程中创建和触发。 二、创建NSTimer的类方法 1. `+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval ...
- **计时与动画**:通过CADisplayLink或NSTimer设置定时器,每次定时器触发时,绘制下一个字符。为了平滑过渡,还可以使用CAKeyframeAnimation或者UIView animations来调整字符出现的动画效果。 2. **添加挡板效果...
在创建开机动画时,我们通常会自定义一个视图类,继承自UIView,并在其内部添加图层来实现动画效果。 "心跳"动画通常指的是视图的大小或颜色随时间周期性变化,模拟心脏跳动的效果。这可以通过改变图层的frame、...
2. 使用UIView动画实现旋转效果,通过修改transform的rotation属性。 3. 使用`CADisplayLink`或`NSTimer`保持动画持续进行。 4. 实时更新颜色数组,实现颜色的动态变化。 5. 考虑性能优化,避免频繁的视图重绘。 在...
模仿腾讯新闻图片频道的图片浏览的幻灯片效果.
5. **延时和重复动画**:为了实现跑马灯的持续滚动,我们可以使用`CADisplayLink`或者`NSTimer`来定期更新动画状态。同时,使用`repeatCount`或`autoreverses`属性可以让动画无限循环或往返播放。 6. **响应式动画*...
`NSTimer`可以让你的应用程序按照预设的时间间隔执行任务,比如更新UI、发送网络请求或者执行动画效果。下面将详细探讨`NSTimer`的工作原理、创建方法、常见用法以及注意事项。 ### NSTimer的工作原理 `NSTimer`并...
Objective-C(简称OC)作为苹果平台的主要编程语言之一,提供了丰富的API来实现各种动画效果。本文将深入探讨如何在OC中使用`Core Animation`和`UIKit`来创建动画,以及动画的基本原理和实践技巧。 一、动画基础 1...
因此,应尽可能减少不必要的动画计算,使用硬件加速,并合理使用动画缓存。对于长时间运行的动画,可以考虑使用`CADisplayLink`或者`NSTimer`来精确控制动画帧率。 总之,iOS提供了丰富的动画机制,开发者可以根据...