[SOPT 30 iOS]第1週チャレンジ


🌱 作業内容


:Instagramクローンコード.実施登録画面と会員登録画面
シーケンスイメージボードの使用기본 과제
  • UI実装(ログイン画面/会員入力画面/完了画面)
  • 画面遷移
  • データ転送
  • 도전 과제
  • TextFieldに値を入力と、レリーズボタン
  • が開放する.
  • TextFieldにすべての値を入力と、ログインボタン
  • が有効になります.심화 과제
  • ログイン画面:目アイコンをクリックしてパスワード
  • が露出しているかどうかを確認します.

    📸 スクリーンショット


    実施内容スクリーンショット登録画面会員登録画面

    📌 勉強する部分

  • エンクロージャ
  • 外部/外部バインド
  • 値の伝達方式
    :この部分はプロジェクトの規模が拡大したときに、UserDefaul/モノトーンモードを勉強すればいいですね(殷周先輩のブログを参照).😇)
  • は、回収コード拡張
  • に減少する.

    📍 点の修正

  • 次画面からのジャンプ時にtextField値をクリア
  • override func viewWillAppear(_ animated: Bool) {
          super.viewWillAppear(animated)
          resetTextField()
      }
      
     private func resetTextField(){
          emailTextField.text?.removeAll()
          passwordTextField.text?.removeAll()
     }
    ボタンは、両方の値が
  • のテキストフィールドにある場合にのみ無効になります.入力と削除の両方が無効になっている場合でも、条件:
  • が追加されます.
      private func setUpClearBtnStatus(){
            guard let isEmailTextFieldEmpty = emailTextField.text?.isEmpty else { return }
            clearButton.isHidden = !isEmailTextFieldEmpty
      }
    
      @objc func textFieldEditingChanged(_ textField: UITextField) {
            setUpClearBtnStatus()
            loginButton.isEnabled = ![emailTextField, passwordTextField].compactMap {
                $0.text?.isEmpty
            }.contains(true)
      }
  • 再包装
  • private func setUpClearBtnStatus(){
       let isEmailTextFieldEmpty = emailTextField.text?.isEmpty == true
       if(!isEmailTextFieldEmpty){
       		clearButton.isHidden = false
       }
    }
    
     /*
       guard let setEmailTextField = !isEmailTextFieldEmpty else {
            clearButton.isHidden = false
       }
     */
    リフォームとは言いづらいけど.
    注釈処理に従ってコードを書きたいのですが、使えません.
    どうして.
    guard let文をif文と考えたからです.😇
    !isEmailTextFieldEmpty部分はnil/!区別nil...
    Optional Bindingに対してとてもまじめな学习のためです
     private func setUpClearBtnStatus(){
         guard let isEmailTextFieldEmpty = emailTextField.text?.isEmpty else { return }
         clearButton.isHidden = !isEmailTextFieldEmpty
     }
    最後にこのように修正しました
    勉強しすぎた1週間!