Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- map
- Human interface guide
- clean architecture
- Refactoring
- collectionview
- Clean Code
- Observable
- 리펙터링
- swift documentation
- 애니메이션
- UICollectionView
- RxCocoa
- UITextView
- swiftUI
- MVVM
- rxswift
- HIG
- 클린 코드
- 리팩토링
- 리펙토링
- 스위프트
- SWIFT
- Xcode
- uiscrollview
- tableView
- ios
- combine
- uitableview
- Protocol
- ribs
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 동적으로 tableView의 frame사이즈 변경 방법, intrinsicContentSize 본문
iOS 응용 (swift)
[iOS - swift] 동적으로 tableView의 frame사이즈 변경 방법, intrinsicContentSize
jake-kim 2021. 4. 2. 23:06intrinsicContentSize를 이용한 가장 간편한 방법은 해당 포스팅 글 참고
tableView
- 기본적인 tableView는 frame의 사이즈를 정해주지 않으면 constraint 에러
- top, leading, trailing을 정해주어도 height가 정해지지 않았기 때문에 오류: height 또는 bottom constraint 지정 필요
- 아래 버튼이 존재하고 constraint가 16 이상이 유지되도록 구현 방법?
- placeHolder로 레이아웃을 주고 tableView의 contentSize는 동적으로 증가하면 frame도 동적으로 증가
- 특정구간까지만 frame이 증가되도록 tableView의 하단을 greater than or equal 로 설정
- 내부 크기에 따라 크기가 contentSize가 달라지는 tableView 생성
- 주의: reloadData를 overrding하면 경고메세지 표출 및 버그가 발생할 수 있는 경우 존재
import UIKit
class IntrinsicTableView: UITableView {
override var intrinsicContentSize: CGSize {
let number = numberOfRows(inSection: 0)
var height: CGFloat = 0
for i in 0..<number {
guard let cell = cellForRow(at: IndexPath(row: i, section: 0)) else {
continue
}
height += cell.bounds.height
}
return CGSize(width: contentSize.width, height: height)
}
}
- IntrinsicTableView로 class 지정
- tableView의 intrinsic Size를 수정: default(system defind) -> Placeholder
응용 - TableView밑에 문구가 있는 경우
- StackView에 intrinsicTableView와 UILabel
- stackView의 bottom constraint는 button의 top에 greater than or equal 지정 - 주의: 아래처럼 stack view에 넣을 경우 경고 메세지가 뜰수 있으므로 주의
- 결과:
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] 한글 개행, 줄바꿈, 한글 Line Break 설정 (어절단위 -> 글자단위) (0) | 2021.04.05 |
---|---|
[iOS - swift] 알람 설정(push setting) 코드에서 확인 방법 (0) | 2021.04.05 |
[iOS - swift] Custom View (only code) (3) | 2021.04.02 |
[iOS - swift] PageControl, UIScrollView, 안내화면 (2) | 2021.03.30 |
[iOS - swift] UIGraphicsBeginImageContextWithOptions, 그래픽 UIImage 생성 (0) | 2021.03.29 |
Comments