文档章节

IOS 简易动画 & 图片挪动实例

卧龙小
 卧龙小
发布于 2014/12/21 22:05
字数 518
阅读 67
收藏 1

一 简易动画的用处

IOS 开发中,如果需要改变UI属性的值,比如坐标位置,为了用户有更好的体验,通常不会直接瞬间改变,而是加上动画效果,让过程有感知。

比如一个控件的 (x,y) 值本来是(100,100),如果需要改变为(0,0),通过简易动画可用达到慢慢平移的效果。


简易动画一般采用以下2种方式:

二 头尾式

//开始动画
[UIView beginAnimations:nil context:nil];

/** 需要执行动画的代码 **/

//设置动画效果(持续时间)
[UIView setAnimationDuration:2];//2秒
//提交动画
[UIView commitAnimations];


三 Block式

//0.5 是动画持续时间
[UIView animateWithDuration:0.5 animations:^{
    /** 需要执行动画的代码 **/
}];


四 代码块

实例:通过简易动画改变UIButton位置,UIButton 初始位置为屏幕中央,然后改变为(0,0)并添加上动画效果

//
//  ViewController.m
//  18Test


#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    //1.创建一个UI控件
    UIButton *btn = [[UIButton alloc]init];

    //2.设置名字
    [btn setTitle:@"click me!" forState:UIControlStateNormal];
    //3.设置背景颜色
    btn.backgroundColor=[UIColor redColor];
    
    //4.设置坐标
    CGFloat buttonW = 100;
    CGFloat buttonH = buttonW;
    CGFloat buttonX = (self.view.frame.size.width - buttonW) * 0.5;
    CGFloat buttonY = (self.view.frame.size.height - buttonH) * 0.5;
    btn.frame =  CGRectMake(buttonX,buttonY ,buttonW , buttonH);
    
    //5.添加到工程自带的view中
    [self.view addSubview:btn];
    
    
    /*=========== 测试动画效果 ============*/
    //6.调用头尾式动画
   //[self beginCommitAnimation];
    
    //7.调用头尾式动画
    [self blockAnimation];
}



/**
 *  头尾式动画
 */
-(void)beginCommitAnimation
{
    //1.开始动画
    [UIView beginAnimations:nil context:nil];
    //2.获取btn
    UIButton *btn = (UIButton *)[[self.view subviews]lastObject];
    //3.改变btn 坐标为 0,0
    [self changeLocation:btn];
  
    
    //4.动画效果设置 (持续时间)
    [UIView setAnimationDuration:2];//2秒
    //5.提交动画
    [UIView commitAnimations];
}



/**
 *  block式动画
 */
-(void)blockAnimation
{
    //1.获取button
    UIButton *btn = (UIButton *)[[self.view subviews]lastObject];
    //2.开始动画 设置为2秒动画持续时间
    [UIView animateWithDuration:20 animations:^{
        //3.改变btn 坐标位置
        [self changeLocation:btn];
    }];
}


/**
 *  改变UIButton 位置 方法
 *
 *  @param btn btn description
 */
-(void)changeLocation:(UIButton *)btn
{
    CGFloat buttonW = 100;
    CGFloat buttonH = buttonW;
    CGFloat buttonX = 0;
    CGFloat buttonY = buttonX;
    btn.frame =  CGRectMake(buttonX,buttonY ,buttonW , buttonH);
}

@end


原图与效果图

© 著作权归作者所有

卧龙小
粉丝 42
博文 146
码字总数 70107
作品 0
西城
程序员
私信 提问
ios中应用Lottie解决动画问题

作为一名iOS工程师,深知复杂动画的痛苦,下面我们来介绍下Lottie来解决日常的动画难题。 Lottie的简单介绍: 使用Lottie开发的流程是: 设计师在AE中设计完成你的动画,通过bodymoving插件导...

威廉云霄
02/20
0
0
iOS运营级B2B服务平台App、自定义图标库、个人中心页面、识别身份证Demo、瀑布流等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画(http://www.code4app.com/thread-10860-1-1.html) 一个近乎完整的可识别中国身份证信息的Demo 可自动快速...(http://www.code4a...

Android爱开源
2018/10/25
18
0
系统学习iOS动画之零:说明和目录

动画制作很有趣,可以为用户界面注入活力。 如果使用得当,动画可以向用户传达信息,并将用户注意力吸引到界面的重要部分。 之前也做过一些iOS动画,但一直没有系统学习过,这次我用RW网站的...

Andy_Ron
2018/12/21
0
0
iOS精美过度动画、视频会议、朋友圈、联系人检索、自定义聊天界面等源码

iOS精选源码 iOS 精美过度动画源码(http://www.code4app.com/thread-14827-1-1.html) iOS简易聊天页面以及容联云IM自定义聊天页面的实现思路(http://www.code4app.com/thread-30348-1-1.htm...

sunnyaigd
2018/07/11
48
0
iOS新特性框架、仿微信图片浏览、视频监控、爱心动画、文字适配等源码

iOS精选源码 iOS一个看电影、电视剧集合 HDCinema(http://www.code4app.com/thread-29425-1-1.html) 一个非常简易的新特性集成框架NewFeatures(http://www.code4app.com/thread-29433-1-1.ht......

sunnyaigd
2018/05/02
22
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
16分钟前
2
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
27分钟前
2
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
36分钟前
5
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部