当前位置:编程学习 > wap >>

IOS开发(88)之动画之视图的移动

1 前言
今天我们来学习使用 UIView 的动画方法来移动你的视图。

2 代码实例
ZYViewController.m:

 

[plain]
- (void)viewDidLoad 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    UIImage *xcodeImage = [UIImage imageNamed:@"Xcode.png"]; 
    self.xcodeImageView = [[UIImageView alloc] initWithImage:xcodeImage]; 
    //设置图片的Frame 
    [self.xcodeImageView setFrame:CGRectMake(0.0f,0.0f, 100.0f, 100.0f)]; 
    self.view.backgroundColor = [UIColor whiteColor]; 
    [self.view addSubview:self.xcodeImageView]; 

-(void) viewDidAppear:(BOOL)paramAnimated{ 
    [super viewDidAppear:paramAnimated]; 
    //从左上角开始 
    [self.xcodeImageView setFrame:CGRectMake(0.0f,0.0f, 100.0f, 100.0f)]; 
    /*调用 beginAnimations:context:方法来启动一个动画后,动画并不会立即被执行,直到你调用 UIView 类的 commitAnimations 类方法。对一个视图对象执行的介于 beginAnimations:context:方法跟 commitAnimations 方法之间的操作(例如移动)会在 commitAnimations 被执行后才会生效。 
     启动一个动画块。任何在此类方法调用后你提交给视图的动画属性的改变会在动画提交后得到执行。 
     */ 
    [UIView beginAnimations:@"xcodeImageViewAnimation" context:self.xcodeImageView]; 
    //设置动画时间为5s 
    [UIView setAnimationDuration:5.0f]; 
    //接受动画代理 
    [UIView setAnimationDelegate:self]; 
    //设置消息发送到动画代表当动画停止。如果你指定一个动画代表一个开始/提交动画,你用这个方法来指定选择器被调用后,动画结束。这种方法并没有做任何事情如果调用外部的一个动画块。它必须被调用beginAnimations和commitAnimations方法之间。这个选择器默认设置为NULL。 
    [UIView setAnimationDidStopSelector:@selector(imageViewDidStop:finished:context:)]; 
    /* 设置Frame在右下角 */ 
    [self.xcodeImageView setFrame:CGRectMake(200.0f,350.0f,100.0f,100.0f)]; 
    //提交动画 
    [UIView commitAnimations];  

- (void)viewDidLoad
{
    [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.
    UIImage *xcodeImage = [UIImage imageNamed:@"Xcode.png"];
    self.xcodeImageView = [[UIImageView alloc] initWithImage:xcodeImage];
    //设置图片的Frame
    [self.xcodeImageView setFrame:CGRectMake(0.0f,0.0f, 100.0f, 100.0f)];
    self.view.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:self.xcodeImageView];
}
-(void) viewDidAppear:(BOOL)paramAnimated{
    [super viewDidAppear:paramAnimated];
    //从左上角开始
    [self.xcodeImageView setFrame:CGRectMake(0.0f,0.0f, 100.0f, 100.0f)];
    /*调用 beginAnimations:context:方法来启动一个动画后,动画并不会立即被执行,直到你调用 UIView 类的 commitAnimations 类方法。对一个视图对象执行的介于 beginAnimations:context:方法跟 commitAnimations 方法之间的操作(例如移动)会在 commitAnimations 被执行后才会生效。
     启动一个动画块。任何在此类方法调用后你提交给视图的动画属性的改变会在动画提交后得到执行。
     */
    [UIView beginAnimations:@"xcodeImageViewAnimation" context:self.xcodeImageView];
    //设置动画时间为5s
    [UIView setAnimationDuration:5.0f];
    //接受动画代理
    [UIView setAnimationDelegate:self];
    //设置消息发送到动画代表当动画停止。如果你指定一个动画代表一个开始/提交动画,你用这个方法来指定选择器被调用后,动画结束。这种方法并没有做任何事情如果调用外部的一个动画块。它必须被调用beginAnimations和commitAnimations方法之间。这个选择器默认设置为NULL。
    [UIView setAnimationDidStopSelector:@selector(imageViewDidStop:finished:context:)];
    /* 设置Frame在右下角 */
    [self.xcodeImageView setFrame:CGRectMake(200.0f,350.0f,100.0f,100.0f)];
    //提交动画
    [UIView commitAnimations];
}
运行结果

 \
 


运动后结果

 

\

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,