728x90
반응형
안녕하세요 욱승입니다.
이번 포스팅에서는 'Then' 라이브러리에 대해서 다루어 볼건데요 무슨상황에서 많이 쓰이게 되냐면 스토리보드가 아닌 CodeBase로 UI를 구현할때 조금더 가독성이 좋은 코드를 구성할 수 있습니다.
💻Podfile
💻예제
// Then 사용X
let label: UILabel = {
let label = UILabel()
label.text = "Then 사용X"
label.sizeToFit()
return label
}()
// Then 사용
let labelThen = UILabel().then {
$0.text = "Then 사용O"
$0.sizeToFit()
}
UILabel 객체 생성의 경우 차이가 보이시나요
💻전체 예제코드
//
// ViewController.swift
// JSPhoneFormat
//
// Created by plsystems on 2023/02/20.
//
import UIKit
import SnapKit
import Then
// 프로토콜
protocol ViewAttributes {
func setUI()
func setAttributes()
}
class ViewController: UIViewController, ViewAttributes{
// Then 사용X
let label: UILabel = {
let label = UILabel()
label.text = "Then 사용X"
label.sizeToFit()
return label
}()
// Then 사용
let labelThen = UILabel().then {
$0.text = "Then 사용O"
$0.sizeToFit()
}
override func viewDidLoad() {
super.viewDidLoad()
setUI()
setAttributes()
}
func setUI() {
//view에 addSubView
self.view.addSubview(label)
self.view.addSubview(labelThen)
}
func setAttributes() {
//Snapkit, 'Then'을 사용하지 않은 객체의 AutoLayout
label.snp.makeConstraints {
$0.centerX.centerY.equalTo(self.view.safeAreaLayoutGuide)
}
//Snapkit, 'Then'을 사용한 객체의 AutoLayout
labelThen.snp.makeConstraints {
$0.centerX.equalTo(self.view.safeAreaLayoutGuide)
$0.top.equalTo(label.snp.bottom).offset(30)
}
}
}
Reference
728x90
반응형
'iOS > Library' 카테고리의 다른 글
[Swift] 구글 AdMob, 앱에 광고달기 (0) | 2023.03.15 |
---|---|
[iOS] CocoaPods could not find compatible versions for pod (0) | 2023.03.14 |
[Swift] Toast메시지 띄우기 (0) | 2023.03.10 |
[Swift] JSPhoneFormat 휴대폰번호 포맷팅 (0) | 2023.02.20 |
[Swift] 에러로그 - Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5 (0) | 2023.02.20 |