偶然的机会发现window的阿里旺旺的登陆效果蛮有意思的,于是就模仿着做了一下打印机吐纸的动画效果
看起来很神奇的东西,实现起来却不难,下面我给大家看下主要的源码。

- (void)createUI{    UIImageView *backimageView=[[UIImageView alloc]init];    
   backimageView.image =[UIImage imageNamed:@"1.png"];    
   backimageView.frame = CGRectMake(50, 100, LBSCREEN_WIDTH-100, 30);    
   [self.view addSubview:backimageView];    
   backView = [[UIView alloc]initWithFrame:CGRectMake(60, 115, LBSCREEN_WIDTH-120, 0)];    
   backView.layer.cornerRadius = 5;    
   backView.backgroundColor = [UIColor whiteColor];    
   backView.layer.borderWidth = 1;    
   backView.layer.borderColor = [UIColor blackColor].CGColor;    
   backView.clipsToBounds = YES;    
   [self.view addSubview:backView];    
   login_btn = [UIButton buttonWithType:UIButtonTypeCustom];    
   login_btn.frame = CGRectMake(10, 120, LBSCREEN_WIDTH-140, 35);    
   [login_btn setTitle:@"登陆" forState:UIControlStateNormal];    
   login_btn.backgroundColor = [UIColor lightGrayColor];    
   login_btn.layer.cornerRadius = 5;    
   login_btn.layer.borderWidth = 1;    
   login_btn.layer.borderColor = [UIColor lightGrayColor].CGColor;    
   [login_btn addTarget:self action:@selector(passwordClick:) forControlEvents:UIControlEventTouchUpInside];    
   login_btn.clipsToBounds = YES;    
   pass_btn = [UIButton buttonWithType:UIButtonTypeCustom];    
   pass_btn.frame = CGRectMake(10, 165, LBSCREEN_WIDTH-140, 35);    
   [pass_btn setTitle:@"注册" forState:UIControlStateNormal];    
   pass_btn.backgroundColor = [UIColor redColor];    
   [pass_btn addTarget:self action:@selector(passwordClick:) forControlEvents:UIControlEventTouchUpInside];    
   pass_btn.layer.cornerRadius = 5;    
   pass_btn.layer.borderWidth = 1;    
   pass_btn.layer.borderColor = [UIColor lightGrayColor].CGColor;    
   pass_btn.clipsToBounds = YES;    
   Name_textfield = [[UITextField alloc]initWithFrame:CGRectMake(10, 20, LBSCREEN_WIDTH-140, 40)];    
   Name_textfield.placeholder = @"帐号";    
   Name_textfield.borderStyle = UITextBorderStyleRoundedRect;    
   Pass_textfield = [[UITextField alloc]initWithFrame:CGRectMake(10, 70, LBSCREEN_WIDTH-140, 40)];    
   Pass_textfield.borderStyle = UITextBorderStyleRoundedRect;    
   Pass_textfield.placeholder = @"密码";    //2秒后开始一个持续一分钟的动画    
   [UIView animateWithDuration:1 delay:2 options:UIViewAnimationOptionBeginFromCurrentState animations:^{        
       backView.frame=CGRectMake(60, 115, LBSCREEN_WIDTH-120, 210);    
   } completion:^(BOOL finished) {          [backView addSubview:Name_textfield];        
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{            
           [backView addSubview:Pass_textfield];            
               dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{                
                 [backView addSubview:login_btn];                
                 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{                    
                   [backView addSubview:pass_btn];                
                  });            
           });        
       });
    }];
}
- (void)passwordClick:(UIButton *)sender{
    NSLog(@"hhhhh....");
}

不难看懂吧?主要就用到了一个改变frame的动画,x轴和y轴以及宽不变,改变它的高
下面晒下效果图

(http://allluckly.cn)

源码下载的地址

下载地址:https://github.com/AllLuckly/LBPrinterPaper

仿window阿里旺旺登陆界面,打印机吐纸动画效果-b的更多相关文章

  1. .Net语言 APP开发平台——Smobiler学习日志:仿12306的APP登陆界面

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...

  2. window.requestAnimationFrame()的使用,处理更流畅的动画效果

    https://blog.csdn.net/w2765006513/article/details/53843169 window.requestAnimationFrame()的使用 2016年12 ...

  3. Qt之界面出现、消失动画效果(简单好用)

    在学习Qt的这2.3个月里,对Qt越发感兴趣,从刚开始的盲目.无所适从到现在的学习.研究.熟练.掌握的过程中,我学到了很多东西,也学会了如何通过自学让自己更加成熟.强大起来,如何更有效地提高自己学习. ...

  4. Qt之界面出现、消失动画效果

    在学习Qt的这2.3个月里,对Qt越发感兴趣,从刚开始的盲目.无所适从到现在的学习.研究.熟练.掌握的过程中,我学到了很多东西,也学会了如何通过自学让自己更加成熟.强大起来,如何更有效地提高自己学习. ...

  5. 仿知乎/途家导航栏渐变文字动画效果-b

    demo.gif 效果图如上,简单分析下 1.导航栏一开始是隐藏的,随着scrollView滚动而渐变 2.导航栏左右两边的navigationItem是一直显示的 3.导航栏参考了途家app,使用了 ...

  6. vue2.0 仿手机新闻站(七)过滤器、动画效果

    1.全局过滤器 (1)normalTime.js  自定义 将 时间戳 转换成 日期格式 过滤器 /** * 将 时间戳 转换成 日期格式 */ export const normalTime = ( ...

  7. Win7如何取消用户登陆界面

    Window取消用户登陆界面 用户已设置密码状态下:删除密码即可. 用户无密码状态下: 运行 → control userpasswords2 → 找到“要使用本机,用户必须输入用户名与密码”这一项, ...

  8. 仿饿了吗点餐界面两个ListView联动效果

    这篇文章主要介绍了仿饿了点餐界面2个ListView联动效果的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 如图是效果图: 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适 ...

  9. iOS中三种方式实现登录界面播放视频或gif效果

    现在app都做的越来越炫酷,各种动画效果,各种特效很好的提高了用户的体验.很多app在登录界面都使用了动画效果,比如Uber,Keep,QQ等等.这些动画效果基本都是使用gif或者MP4来实现的. 效 ...

随机推荐

  1. c++中静态成员变量 静态成员函数 全局变量与静态函数的关系 字符串中括号的匹配编程 (笔试经历)

    笔试经历 1 类中的静态变量不能通过构造函数参数列表来初始化,因为静态变量不属于哪个对象.同时静态变量在不初始化的情况下系统会自动为变量赋值,数值型赋值为零,字符型赋值为空. 非静态变量只有在定义时才 ...

  2. 使用webView制作浏览器

    xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  3. selendroid inspector xpth元素定位记录

    android自动化测试元素定位,目前发现appium官方的uiautomatorviewer一般的元素定位还行,但好多都找不到. 这个时候,可以考虑selendroid的inspector 官网:h ...

  4. 使用Keil建立工程和烧录到89C52板上

    又开始学习C51了,不清楚能坚持多久,之前学过一段时间,学完P1口就没再学了,之前学的都忘了. 1. 使用Keil 进行建立工程:打开Keil 4. 加载C文件进工程里面 然后展开"Sour ...

  5. videojs 动态加载视频

    VideoJS dynamic source change via RESTful API 'Undefined' issue with changing RTMP source on compres ...

  6. 在知乎回答的一个问题:C#初学者以后往WP开发走,还是往unity3d走?哪个更有前景呢

    问题原文:我是一个C#初学者,想问个问题,我以后是该往WP开发方向走呢还是学习Unity3D往游戏开发,哪个更有前景呢,个人感觉未来几年iOS,WP,Java会三足鼎立,WP现在有潜力,但是U3D现在 ...

  7. 20160505-hibernate入门2

    基本概念和CURD 开发流程 1由Domain object -> mapping->db.(官方推荐) 2由DB开始,用工具生成mapping和Domain object.(使用较多) ...

  8. Linq DataTable Group By 分组显示人员明细

    实现功能:       多个字段分组源码样例: 原始数据: 分组后的输出结果: 源代码: public static void PrintPersons() { //准备数据 DataTable dt ...

  9. oracle中的exists 和not exists 用法 in与exists语句的效率问题

    博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源(  in与exi ...

  10. C 语言 查找一个字符串2在字符串1中出现的次数

    #include <stdio.h> #include <windows.h> int main() { ], b[]; char *temp; ; memset( a, ); ...