iOS实现萌货猫头鹰登录界面动画_IOS

效果如下图.

动画实现核心:

动画核心的是用到了iOS中UIViewtransform属性,然后根据尺寸坐标对四张图片进行平移以及缩放.
具体的图层结构如图所示:

注意点:

    1.图中只露出两个点的手臂,是不需要裁剪的,有部分是能遮挡粉色view的.所以可以将它们与头部图片放在一个view中.

    2.而动画中的手臂只露出粉色文本框以上的部分的方法,是将两个手臂图片添加到一个另外一个View中,然后设置这个View的属性为超过UIView的部分自动裁剪.

核心代码:

 //相对于初始位置的平移
 self.greenView.transform = CGAffineTransformMakeTranslation(100, 0);
 //相对于上次位置的平移
 self.greenView.transform = CGAffineTransformTranslate(self.greenView.transform, 100, 0);
 //相对于初始尺寸的缩放,2是倍数
 self.greenView.transform = CGAffineTransformMakeScale(2, 2);
 //相对于上次的尺寸缩放0.5倍
 self.greenView.transform = CGAffineTransformScale(self.greenView.transform, 0.5, 0.5);

步骤1:

主要视图在storyBorad中创建

1.将两个小点手臂图片和头部图片放到一个view中.

 

2.将那两个长的手臂放到一个view中,然后将这个view堆叠到1中的view上,位置要对应,手正好能蒙住眼睛,这个view的属性要设置为超出部分自动裁剪.view的颜色为透明.

3.最后的视图效果是这样的.

步骤2:

考虑到代码的封装性,我们可以这整个View关联到一个UIView的类中.

1.对图中的4张图片拖线到刚刚新建的类中,建立4个UIImageView属性.对一整个view进行拖线

//Arm是长长的手臂
@property (weak, nonatomic) IBOutlet UIImageView *leftArm;
@property (weak, nonatomic) IBOutlet UIImageView *rightArm;
//Hand是那两个小圆点
@property (weak, nonatomic) IBOutlet UIImageView *leftHand;
@property (weak, nonatomic) IBOutlet UIImageView *rightHand;
//包含5张图片的整个view
@property (weak, nonatomic) IBOutlet UIView *viewFrame;

2.在awakeFromNib方法中对控件进行初始化

获得手臂图片相对于一整个view的位置,以及整个view的宽高

  //当前左手的位置
  CGFloat leftArmX = self.leftArm.frame.origin.x;
  CGFloat leftArmY = self.leftArm.frame.origin.y;
  //当前右手的位置
  CGFloat rightArmX = self.rightArm.frame.origin.x;
  CGFloat rightArmY = self.rightArm.frame.origin.y;
  //viewFrame的宽高
  CGFloat viewFrameH = self.viewFrame.frame.size.height;
  CGFloat viewFrameW = self.viewFrame.frame.size.width;

根据以上数据计算得出,在初始状态手臂的位置(注意:设置图片时手臂是蒙住眼睛的,初始状态手臂是看不到的,只有两个小点(hand))

  //为了便于以后的计算,将左右手的初始位置设置为属性
  //15为根据图片显示的位置作适当调整的尺寸
  self.leftArmX = -leftArmX - 15;
  self.leftArmY = viewFrameH - leftArmY;
  self.rightArmX = viewFrameW - rightArmX - self.rightArm.frame.size.width +15;
  self.rightArmY = viewFrameH - rightArmY;
  //根据计算出的左右手的初始位置,设置初始位置左右手的偏移量
  self.rightArm.transform = CGAffineTransformMakeTranslation(self.rightArmX, self.rightArmY);
  self.leftArm.transform = CGAffineTransformMakeTranslation(self.leftArmX, self.leftArmY);

添加四个属性

@property (nonatomic,assign)CGFloat leftArmX;
@property (nonatomic,assign)CGFloat leftArmY;
@property (nonatomic,assign)CGFloat rightArmX;
@property (nonatomic,assign)CGFloat rightArmY;

3.猫头鹰的状态有两种,蒙住眼以及不蒙眼的

//方便调用,样式:[self.loginAnim startAnim:YES];
- (void)startAnim:(BOOL)isCoverd
{
  if (isCoverd) {
    //动画持续时间0.25秒
    [UIView animateWithDuration:0.25 animations:^{
      // 蒙眼
    }];
  }else
  {
    [UIView animateWithDuration:0.25 animations:^{
      //不蒙眼,也就是初始状态
    }];
  }
}

1.蒙眼状态

      //手臂偏移到蒙住眼睛的位置
      self.rightArm.transform = CGAffineTransformTranslate(self.rightArm.transform, -self.rightArmX, -self.rightArmY);
      self.leftArm.transform = CGAffineTransformTranslate(self.leftArm.transform, -self.leftArmX, -self.leftArmY);
      //小圆点移动到眼睛的位置,30为根据图片显示位置手动调整的尺寸
      CGAffineTransform rightHand = CGAffineTransformTranslate(self.rightArm.transform, -self.rightArmX, -self.rightArmY+30);
      CGAffineTransform leftHand = CGAffineTransformTranslate(self.leftArm.transform, -self.leftArmX, -self.leftArmY+30);
      //小圆点在移动的过程中逐渐减小
      self.rightHand.transform = CGAffineTransformScale(rightHand, 0.01, 0.01);
      self.leftHand.transform = CGAffineTransformScale(leftHand, 0.01, 0.01);

2.不蒙眼

      //两个手臂回到初始化状态
      self.rightArm.transform = CGAffineTransformMakeTranslation(self.rightArmX, self.rightArmY);
      self.leftArm.transform = CGAffineTransformMakeTranslation(self.leftArmX, self.leftArmY);
      //两个小圆点回到默认设置
      self.rightHand.transform = CGAffineTransformIdentity;
      self.leftHand.transform = CGAffineTransformIdentity;

至此本文介绍的萌版猫头鹰登录动画就完成了,是不是很有趣呢?感兴趣的小伙伴们快快动手实现起来吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ios
, ios登录界面
, 猫头鹰登录界面
登录demo
猫头鹰动画片、猫头鹰动画、关于猫头鹰的动画片、猫头鹰的动画片、猫头鹰登录界面,以便于您获取更多的相关知识。

时间: 2024-10-30 06:28:45

iOS实现萌货猫头鹰登录界面动画_IOS的相关文章

ios开发之Swift实现的登录界面(带猫头鹰动画效果)

这个是一个可爱的登录框页面,动画效果仿自国外网站readme.io.在GitHub上有人写了个objective-C版本,这里我翻译成Swift版的分享给大家.   效果图如下: (1)当输入用户名时,猫头鹰的手是搭在登录框上 (2)当输入密码时,猫头鹰的手会遮住眼睛.这个是有动画效果的.实现方式其实就是图片移动动画. (3)离开密码框时,猫头鹰手又会放下. 开发之Swift实现的登录界面(带猫头鹰动画效果)-猫头鹰动画片">     动态效果如下: import UIKit   clas

IOS开发--iPad之仿制QQ空间(登录界面搭建+登录逻辑实现)

1.IOS开发--iPad之仿制QQ空间(登录界面搭建+登录逻辑实现)  开始搭建登录界面 登录界面效果图:  相关的图片资源下载百度云备份链接: http://pan.baidu.com/s/1o71cvMU 密码: 2h7e 步骤开始:   设置辅助窗口的位置在下方     快捷键option,然后拖拽复制之后:                                 这里就直接省去了将背景颜色改为经典黑了.   到这里QQ空间的登录界面搭建完毕.   下面进行登录逻辑的实现:  

jQuery热气球动画半透明背景的后台登录界面代码分享_jquery

本文实例讲述了jQuery实现热气球动画背景登录框.分享给大家供大家参考.具体如下: jQuery热气球动画背景登录框是一款动态半透明背景的后台登录界面样式效果代码.页面效果简洁大方,是一款非常实用的特效代码,值得大家学习. 运行效果图:-------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的jQuery实现热气球动画背景登录框代码如下 <head> <meta http-equ

Android属性动画实现炫酷的登录界面

我们聊聊我们常写的登录界面,这个界面我相信很多人都写过,而且也没什么难度,但是如果要实现比较不一般的效果,那就要花点心思了,先看看项目的效果吧: 我一直都不知道怎么在编辑框连设置图片大小,所以这个图不怎么样适配编辑框了,大家先凑合着看看. 我先讲讲思路,当我们输入完账号跟密码之后,点击登录,那这个输入框就慢慢的消失,在消失后,紧接着就出现这个进度的界面. 思路有了,那我们就开始编码了: 新建一个项目,然后系统生成了一个MainActivity.java文件和activity_main.xml文件

在设计注册/登录界面时要注意的常见问题

  如何为网站设计用户登录流程是一个老生常谈的话题.随着时代的发展,新用户注册.登录到真正加入一个网站的过程一直在变化,从简单的信息填写发展到全面的注册方式,再从系统的注册回归简约直观的登录体验,新用户的登录流程经历了一个迂回的变迁过程.现如今,绝大多数的网站已经放弃了复杂.繁复的注册流程,将用户可能会遭遇障碍.引起用户反感和烦躁的部分去除,尽可能简单的让用户完成注册和登录流程. 当用户完成注册之后,可以选择性地提供额外的信息,而这些信息可能会给给用户带来更加定制化的用户体验.为了安全起见,绝大

如何把握登录界面易用与安全的平衡

  不论是网页设计师还是UI设计师,登录和注册页面的设计是必然经历过的工作内容.登录界面的设计说难不难,说容易也不是那么轻松就可以做好的,要在安全和可用性之间找到登录界面的平衡点,还是需要相当的经验来支撑的.今天的文章来自GoSquared团队,他们在登录界面的设计上细致入微,值得学习哦~ 对于GoSquared 的每一个设计细节,我们都非常之上心.最近登录界面改版,新加入的双重认证机制使得用户账户更加安全,与此同时,我们也借此机会逐步提升用户登录的体验. 提升登录界面的用户体验并没有看起来那么

用户名 密码-VC++ 6.0 登录界面的设计,求救!!

问题描述 VC++ 6.0 登录界面的设计,求救!! VC++ 6.0 中用对话框来设计用户登录界面,怎么来完成用户名.密码的设计??并且用户名.密码都有默认值??? 解决方案 新建一个对话框,在上面画上两个static两个文本框,两个按钮默认值可以从文件中读取.要完整代码请采纳. 解决方案二: void CMyApp1Dlg::OnOK() { // TODO: Add extra validation here this->UpdateData(); if (m_eu == "&quo

ios开发-跪求iOS开发的新浪微博授权登录,要求源码实现.

问题描述 跪求iOS开发的新浪微博授权登录,要求源码实现. 跪求iOS开发的新浪微博授权登录,要求源码实现,不要第三方的,也不要静态库的,求大神给个Demo,本人小菜鸟一枚,刚工作不久,求大神关照,无以为报,只愿好人一生平安! QQ:903142826 邮箱cuimingran@163.com 解决方案 1.首先你要有新浪开发者账号,无非是到开放平台建立一个项目,然后把你的账号添加进去,你创建的项目中有app key,app secret以及授权跳转地址uri,还要在工程中导入新浪SDK App

功能强大的登录界面Android实现代码_Android

前言      一个好的应用需要一个有良好的用户体验的登录界面,现如今,许多应用的的登录界面都有着用户名,密码一键删除,用户名,密码为空提示,以及需要输入验证码的功能.看着csdn上的大牛们的文章,心里想着也写一个登录界面学习学习,许多东西都是参考别的文章,综合起来的.废话少说,接下来看看是如何实现的.  ps:由于懒得抠图.所以程序的图标很难看. 程序运行时的图示: 首先是布局文件没有什么难度. <RelativeLayout xmlns:android="http://schemas.