ukSeung iOS

[Swift] Then 라이브러리 예제 본문

iOS/Library

[Swift] Then 라이브러리 예제

욱승 2023. 2. 20. 10:09

안녕하세요 욱승입니다.

이번 포스팅에서는 '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 객체 생성의 경우 차이가 보이시나요

 

Then을 썼든 안썼든 결과는 동일

 

💻전체 예제코드

//
//  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

 

GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers

✨ Super sweet syntactic sugar for Swift initializers - GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers

github.com

 

728x90
반응형