如何寫一個酷炫的注冊登錄頁

這是一篇關(guān)于實現(xiàn)一種注冊登錄頁轉(zhuǎn)場動效的文章,基于Swift編程語言和iOS開發(fā)平臺。首先上效果圖


動效.gif

下面就來分析一下這個效果的實現(xiàn)。
轉(zhuǎn)場動畫是一個3D旋轉(zhuǎn),由于3D旋轉(zhuǎn)特性會導(dǎo)致view上的內(nèi)容同樣做出翻轉(zhuǎn)效果,所以要是讓整個view轉(zhuǎn)180度的話,字就會變成反的,因此這里我實際做了讓整個view轉(zhuǎn)了90度,再讓它轉(zhuǎn)回原始位置。在轉(zhuǎn)到90度的時候,我們是無法看到view上的內(nèi)容的,所以在這個時候進行內(nèi)容的更改,等它再轉(zhuǎn)回來的時候就會看到內(nèi)容的變換了。這里貼出核心代碼,你只需要把closure閉包中的代碼替換掉即可測試效果了。

@IBAction func goRegister(_ sender: UIButton) {
    
    self.viewTransform(closure: {
      
      self.welcomeLabel.isHidden = true
      self.titleImgView.image = UIImage.init(named: "pic_loginhome_signin")
      self.initialView.isHidden = true
      self.registerView.isHidden = false
      self.loginView.isHidden = true
      self.customNaviBar.rightBtnText = "登錄"
      self.customNaviBar.rightBtn.removeTarget(self, action: #selector(self.goRegister(_:)), for: .touchUpInside)
      self.customNaviBar.rightBtn.addTarget(self, action: #selector(self.goLogin(_:)), for: .touchUpInside)
    })
  }
  
  @IBAction func goLogin(_ sender: UIButton) {
    
    self.viewTransform(closure: {
      
      self.welcomeLabel.isHidden = true
      self.titleImgView.image = UIImage.init(named: "pic_loginhome_login")
      self.initialView.isHidden = true
      self.loginView.isHidden = false
      self.registerView.isHidden = true
      self.customNaviBar.rightBtnText = "注冊"
      self.customNaviBar.rightBtn.removeTarget(self, action: #selector(self.goLogin(_:)), for: .touchUpInside)
      self.customNaviBar.rightBtn.addTarget(self, action: #selector(self.goRegister(_:)), for: .touchUpInside)
    })
  }
  
  func viewTransform(closure: @escaping () -> Void) {
    
    var transform = CATransform3DIdentity
    let angle = CGFloat(-Double.pi/2)
    transform.m34 = -1 / 500
    
    UIView.animate(withDuration: 1, animations: {() -> Void in
      
      self.view.layer.transform = CATransform3DRotate(transform, angle, 0, 1, 0)
    }, completion: {(_ finished: Bool) -> Void in
      
      closure()
      UIView.animate(withDuration: 1, animations: {() -> Void in
        
        self.view.layer.transform = CATransform3DRotate(transform, 0
, 0, 1, 0)
      })
    })
    
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,466評論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,251評論 4 61
  • 周末休息: 想著明天不用上班,昨晚又熬夜到凌晨一兩點, 睡前把7:00預(yù)備起,7:20準(zhǔn)時起,7:40洗漱完,8:...
    毛小意閱讀 349評論 0 0
  • 第一回 人在江湖 烈日當(dāng)空,熱浪陣陣,太白山上卻一片清涼,滿山蔥蘢,山峰間瀑布玉龍般倒掛,飛珠濺玉,揮灑無盡清涼...
    愛佛僧閱讀 602評論 11 14
  • 風(fēng)塵中,太多無聊,太多落寞,看盡人哭人笑,人瘋?cè)丝瘛?幢M自以為聰明的白癡,自以為高明的弱智。笑過鬧過,就此別過。 ...
    飛狐05閱讀 544評論 3 3