[iOS] 뷰 설정하는 이것저것 코드 조각

어흥·2024년 7월 8일
0

iOS

목록 보기
5/10

본 포스팅은 자주 잊어버리는 제가 자주 사용할 거 같은 코드 조각을 중구난방 저장하는 곳입니다.

뷰를 둥글게 하는 법

view.layer.cornerRadius = 8
view.layer.masksToBounds = true

코드에서 이미지나 색상을 보게 하는 방법

  • ImageLiteral, ColorLiteral 사용하기
#colorLiteral() 
#imageLiteral()

위 줄을 각각 입력하면 선택할 수 있는 윈도우가 나타난다. 여기서 선택하면 된다.

codebased로 constraint 설정하는 방법

view.addSubview(loginStackView)


loginStackView.translatesAutoresizingMaskIntoConstraints = false
loginStackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 30).isActive = true     
loginStackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -30).isActive = true
loginStackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 200).isActive = true
loginStackView.heightAnchor.constraint(equalToConstant: 200).isActive = true
  • isActive = true를 생략하는 형태
NSLayoutConstraint.activate([
            loginStackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 30),
            loginStackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -30),
            loginStackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 200),
            loginStackView.heightAnchor.constraint(equalToConstant: 200)
])

UIStackView 사용하는 방법

private lazy var loginStackView: UIStackView = {
        let view = UIStackView(arrangedSubviews: [emailTextFieldView, pwTextFieldView, loginButton])
        view.backgroundColor = .none
        view.spacing = 18
        view.axis = .vertical
        view.distribution = .fillEqually
        view.alignment = .fill
        return view
}()

Alert 창 생성하는 방법

let alert = UIAlertController(title: "비밀번호 바꾸기", message: "비밀번호를 바꾸시겠습니까?", preferredStyle: .alert )
        
let success = UIAlertAction(title: "확인", style: .default){ action in
     print("확인버튼이 눌렸습니다. ")
}
        
let cancel = UIAlertAction(title: "취소", style: .default){ action in
     print("취소 버튼이 눌렸습니다. ")
}
alert.addAction(success)
alert.addAction(cancel)

오토레이아웃이 변경될 때 에니메이션 적용하는 법

 UIView.animate(withDuration: 0.3){
            self.loginStackView.layoutIfNeeded()
}

UITextField에 글자가 있는지 확인하는 방법

@objc func textFieldEditingChanged(_ textField : UITextField){
        if textField.text?.count == 1 {
            if textField.text?.first == " "{
                textField.text = ""
                return
            }
        }
        guard
            let email = emailTextField.text, !email.isEmpty,
            let password = pwTextField.text, !password.isEmpty
        else{
            loginButton.backgroundColor = .clear
            loginButton.isEnabled = false
            return
        }
        loginButton.backgroundColor = .red
        loginButton.isEnabled = true
}
tf.addTarget(self, action: #selector(textFieldEditingChanged), for: .editingChanged)

화면 터치했을 때 키보드 내리는 코드

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    self.view.endEditing(true)
}

0개의 댓글