最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS實現萌貨貓頭鷹登錄界面動畫

 更新時間:2016年08月02日 09:31:25   作者:Dariel在杭州  
本文介紹的動畫效果仿自國外網站readme.io的登錄界面,超萌可愛的貓頭鷹,感興趣的朋友們可以參考學習。

效果如下圖.

動畫實現核心:

動畫核心的是用到了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中創(chuàng)建

1.將兩個小點手臂圖片和頭部圖片放到一個view中.

 

2.將那兩個長的手臂放到一個view中,然后將這個view堆疊到1中的view上,位置要對應,手正好能蒙住眼睛,這個view的屬性要設置為超出部分自動裁剪.view的顏色為透明.


3.最后的視圖效果是這樣的.

步驟2:

考慮到代碼的封裝性,我們可以這整個View關聯(lián)到一個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;

根據以上數據計算得出,在初始狀態(tài)手臂的位置(注意:設置圖片時手臂是蒙住眼睛的,初始狀態(tài)手臂是看不到的,只有兩個小點(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.貓頭鷹的狀態(tài)有兩種,蒙住眼以及不蒙眼的

//方便調用,樣式:[self.loginAnim startAnim:YES];
- (void)startAnim:(BOOL)isCoverd
{
  if (isCoverd) {
    //動畫持續(xù)時間0.25秒
    [UIView animateWithDuration:0.25 animations:^{
      // 蒙眼 
    }];
  }else
  {
    [UIView animateWithDuration:0.25 animations:^{
      //不蒙眼,也就是初始狀態(tài)
    }];
  }
}

1.蒙眼狀態(tài)

      //手臂偏移到蒙住眼睛的位置
      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.不蒙眼

      //兩個手臂回到初始化狀態(tài)
      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開發(fā)中基本的定位功能實現

    講解iOS開發(fā)中基本的定位功能實現

    這篇文章主要介紹了講解iOS開發(fā)中基本的定位功能實現,示例基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-10-10
  • iOS開發(fā)之手動布局子視圖

    iOS開發(fā)之手動布局子視圖

    這篇文章主要介紹了iOS開發(fā)之手動布局子視圖,從入門到精通幫助大家更好的開發(fā)iOS項目,感興趣的小伙伴們可以參考一下
    2016-08-08
  • iOS實現二維碼的掃描功能

    iOS實現二維碼的掃描功能

    本文給大家介紹的是iOS 原生態(tài)API實現二維碼的掃描功能,非常簡單實用,有需要的小伙伴可以參考下。
    2015-07-07
  • iOS中Label實現顯示不同顏色與字體的方法

    iOS中Label實現顯示不同顏色與字體的方法

    這篇文章主要給大家介紹了關于在iOS中Label實現顯示不同顏色與字體的相關資料,文中分別介紹了利用range或者文字兩種實現的方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • iOS中WKWebView白屏問題的分析與解決

    iOS中WKWebView白屏問題的分析與解決

    最近在工作中遇到了WKWebView白屏的問題,所以這篇文章主要給大家介紹了關于iOS中WKWebView白屏問題的分析與解決方法,文中通過示例代碼介紹的非常詳細,對同樣遇到這個問題的朋友具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • iOS 獲得現在的時間代碼

    iOS 獲得現在的時間代碼

    本文通過實例代碼給大家介紹了iOS 獲得現在的時間的方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-06-06
  • iOS ScrollView嵌套tableView聯(lián)動滾動的思路與最佳實踐

    iOS ScrollView嵌套tableView聯(lián)動滾動的思路與最佳實踐

    這篇文章主要給大家介紹了關于ScrollView嵌套tableView聯(lián)動滾動的思路與最佳實踐,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • iOS安全防護系列之字符串及系統(tǒng)函數隱藏詳解

    iOS安全防護系列之字符串及系統(tǒng)函數隱藏詳解

    這篇文章主要給大家介紹了關于iOS安全防護系列之字符串及系統(tǒng)函數隱藏的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • iOS中延時執(zhí)行的幾種方式比較及匯總

    iOS中延時執(zhí)行的幾種方式比較及匯總

    這篇文章主要給大家介紹了關于iOS中延時執(zhí)行的幾種方式比較及匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • 禁止iPhone Safari video標簽視頻自動全屏的辦法

    禁止iPhone Safari video標簽視頻自動全屏的辦法

    本篇文章給大家分析有沒有辦法禁止iPhone Safari video標簽視頻自動全屏,以下給出好多種情況分享,感興趣的朋友可以參考下
    2015-09-09

最新評論

安岳县| 汉中市| 东方市| 丹江口市| 友谊县| 峨边| 大城县| 闵行区| 铜陵市| 若尔盖县| 马鞍山市| 万宁市| 柳州市| 共和县| 徐汇区| 固阳县| 巴楚县| 昌都县| 镇平县| 双鸭山市| 嘉定区| 张家界市| 大田县| 新和县| 嘉鱼县| 隆尧县| 娱乐| 前郭尔| 禄劝| 旬阳县| 和龙市| 大名县| 普陀区| 伊吾县| 舟山市| 汉阴县| 张家口市| 全南县| 岗巴县| 临漳县| 黔东|