本文档版权归NickTang所有,没有本人书面或电子邮件允许,不许转载,摘录,发表。多谢!
上一个文档,我演示了timer的使用,并且形成了一个动画,但是这个动画可扩展性不好,我们需要更好的动画实现技术,这里UIView类提供了一些基本的功能。
1.新建一个view-based
Application.(在iOS5中是Single View Application)
2.加入一个小的图片,我用的是一个circle.png,长和宽都不要大于100.
3.在viewcontroller.xib上面做如下布局
4. ViewController.h文件如下:
@interface subViewAnimationViewController :
UIViewController {
IBOutlet UIButton *myButton;
IBOutlet UIImageView *myIV;
}
- (IBAction)startAnimation:(id)sender;
@end
5.
ViewController.m文件如下:
@implementation subViewAnimationViewController
- (void)dealloc
{
[myIV
release];
[myButton
release];
[super
dealloc];
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super
didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
}
*/
- (void)viewDidUnload
{
[myIV
release];
myIV = nil;
[myButton
release];
myButton = nil;
[super
viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)startAnimation:(id)sender {
CGRect frame = myIV.frame;
frame.origin.y =
300;
[UIView
beginAnimations:@"aa"
context:nil];
[UIView
setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView
setAnimationDuration:2.0];
[myIV
setFrame:frame];
[UIView
setAnimationDelegate:self];
[UIView
setAnimationDidStopSelector:@selector(viewExchangeAnimationDidStop:finished:context:)];
[UIView
commitAnimations];
}
- (void) viewExchangeAnimationDidStop:(NSString *)animationID finished:(NSNumber *)finished
context:(void *)context {
CGRect frame =
myIV.frame;
frame.origin.y =
25;
[UIView
beginAnimations:@"aa"
context:nil];
[UIView
setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView
setAnimationDuration:2.0];
[myIV
setFrame:frame];
[UIView
commitAnimations];
}
@end
6.解释代码如下:
CGRectframe =myIV.frame;
frame.origin.y=300;
[UIViewbeginAnimations:@"aa"context:nil];//开始一个动画
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseIn];//设置动画先慢后快
[UIViewsetAnimationDuration:2.0];//设置动画持续2秒
[myIVsetFrame:frame];//动画内容,从现有位置移动到frame指示的位置。
[UIViewsetAnimationDelegate:self];
[UIViewsetAnimationDidStopSelector:@selector(viewExchangeAnimationDidStop:finished:context:)];
//上面的两句话设置,当动画结束的时候,调用本类的viewExchangeAnimationDidStop:finished:context:函数
[UIViewcommitAnimations];//开始动画
其他的代码就不解释了,
7.例子代码
http://download.csdn.net/detail/NickTang/3690975
分享到:
相关推荐
`UIView`动画是苹果提供的一种简单而强大的方式,用于在用户界面上创建动态效果。本主题将深入探讨如何在Xcode 6环境下,针对simulator-iPhone 6设备使用`UIView`动画。 首先,`UIView`动画是基于Core Animation...
"swift-你的uiview的周围创建动画闪光"这个主题是关于如何使用Swift开发一个自定义的动画库来实现类似闪光的动态效果。在iOS应用中,这种效果常常用于通知用户某个操作已完成或者吸引用户对特定视图的注意。 首先,...
总的来说,实现iOS中的UIView或UIViewController缩放动画涉及使用`UIView`的动画API,以及自定义动画过渡类以处理更复杂的场景。通过这些技术,开发者可以创造出丰富多样的视觉效果,提升应用的整体用户体验。
首先,我们来了解UIView动画的基本概念。UIView类提供了动画支持,通过调用其`animateWithDuration:animations:`方法,我们可以创建一系列连续的变化,这些变化在指定的时间内以平滑的方式进行。对于翻转动画,我们...
在这个例子中,我们添加了一个名为`UIView+Extension`的分类,对`UIView`进行扩展,添加了一些便捷的方法来直接设置`frame`的相关属性。 通常,`UIView`的`frame`属性是一个`CGRect`结构体,包含`origin`和`size`两...
"swift-Fireworks-为UIView添加烟花动画效果"这个项目就是这样一个例子,它展示了如何在Swift中创建逼真的烟花绽放效果。 首先,我们需要了解`UIView`的基本概念。`UIView`是iOS应用中可视化元素的基础,它可以包含...
本示例项目“ios 模仿iOS7系统启动应用的动画例子”旨在帮助开发者了解并实现类似iOS7启动应用时的动画效果,尤其适用于图片浏览类应用的启动界面。 首先,我们关注的核心组件是`LSAnimatorViewController`。这个类...
在Swift中,DaisyChain框架利用了Swift语言的特性,如扩展(Extensions)和方法链(Method Chaining),来增强UIView类的功能。开发者可以像串起一串珍珠一样轻松地设置各种动画效果,而不需要编写复杂的嵌套代码块...
这两种动画都是基于Core Animation框架实现的,利用CAAnimation类和UIView类来创建丰富的视觉效果。 一、转场动画 转场动画主要用于场景间的切换,如在导航控制器UINavigationController中,它会自动使用...
本文将深入探讨如何使用UICircularSlider,并结合UIView+Animation进行几个简单的动画操作,以增强用户界面的动态感。 首先,UICircularSlider是基于UIView的自定义视图,它通过重绘视图来实现圆形的滑动条。它的...
这个“Core Animation动画例子”压缩包很可能是包含了一些示例代码,帮助开发者理解如何在iOS应用中使用Core Animation。以下是关于Core Animation的一些关键知识点: 1. **什么是Core Animation**: Core ...
总的来说,`JHDropDownMenu`为Swift开发者提供了一个便捷的方式来实现下拉菜单功能,通过其简洁的API和优雅的动画效果,可以轻松增强应用的交互性。理解其工作原理并学会在项目中运用,对于提升应用的用户体验具有...
在Android或iOS等移动平台上,开发者可以利用各自的SDK提供的动画框架来创建这样的功能。例如,在Android中,我们可以使用`ObjectAnimator`、`ValueAnimator`或`PropertyAnimator`来实现开关的动画效果;在iOS中,...
4. **动画效果**:实现动画效果,iOS提供了Core Animation框架,可以使用`UIView.animate(withDuration:animations:)`方法来进行简单的动画,或者通过CAAnimation类来实现更复杂的动画效果,例如平移、旋转、缩放等...
2. **UIView动画**: 除了Core Animation,iOS还提供了UIView的便捷动画方法,如`animate(withDuration:animations:)`,适用于简单的视图属性动画,如位置、大小和透明度的改变。 3. **Block动画**: 使用块语法来...
UIView+动画属性 这个对UIView块动画的扩展允许你实现自己的UIView子类的...例子您的UIView子类具有自定义动画属性: @implementation ANPCornerView@dynamic cornerRadius;- ( CGFloat ) cornerRadius { return self.
总的来说,`UIViewAnimation`为开发者提供了简单易用的界面动画功能,能够快速实现诸如视图移动、旋转、透明度变化等基本动画效果。然而,对于更复杂、性能要求更高的动画需求,开发者可能需要转向`CABasicAnimation...
"动画实现view的转换"这个主题主要关注如何使用`UIView`类中的动画方法来实现界面元素的动态变化,为你的博客提供可展示的实例代码。`UIView`动画使得开发者能够轻松地添加平滑、引人入胜的视觉效果到应用中。 在...
在iOS SDK中,UIView类提供了丰富的动画功能。我们可以利用`UIView.animate(withDuration:animations:)`方法来创建一个简单的时间线动画。在这个例子中,很可能就是通过监听ScrollView的滑动事件,当用户执行下拉...
2. **UIView动画**: UIView类提供了一些简单易用的动画方法,如`animate(withDuration:animations:)`和`animate(withDuration:delay:options:animations:completion:)`。这些方法允许开发者在指定的时间内改变一个或...