본문 바로가기

개발/Swift

[Swift] UI - Dynamic TableView

반응형

높낮이를 컨텐츠 사이즈에 따라 알아서 맞춰주는 테이블 뷰! 

 

CustomView 추가

import Foundation
import UIKit

class UIDynamicSizeTableView: UITableView {
    
    override var intrinsicContentSize: CGSize {
        let height = self.contentSize.height + self.contentInset.top + self.contentInset.bottom
        return CGSize(width: self.contentSize.width, height: height)
    }
    
    override func layoutSubviews() {
        self.invalidateIntrinsicContentSize()
        super.layoutSubviews()
    }
    
}

 

ViewController 에서 사용

import Foundation
import UIKit

class ViewController: UIViewController {
    
    ...
    
    private lazy var tableView = UIDynamicSizeTableView().then {
        $0.showsVerticalScrollIndicator = false
        $0.showsHorizontalScrollIndicator = false
    }
    
    ...
    
}

 

장점 : estimatedRowHeight, rowHeight 를 지정해줄 필요가 없음
단점 : 아직 찾지 못함 ☺️ 그러나 뷰 성격에 맞게 활용해야 장점을 발휘할 수 있음

반응형

'개발 > Swift' 카테고리의 다른 글

[Swift] Set 연산  (0) 2021.06.17
[Swift] 프로토콜 지향 제네릭  (0) 2021.06.03
[Swift] TextField 앞 뒤 공백 없애기  (0) 2021.04.22
[Swift] 테이블 뷰 -> 테이블 뷰 drag and drop  (0) 2021.04.20
[Swift] 문자열 다루기  (0) 2021.03.31