테이블뷰의 Custom Cell을 설정할 때 처음에 제약조건을 ContentView에만 맞췄다.
private func configureCellConstraint() {
NSLayoutConstraint.activate([
contentStackView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
contentStackView.topAnchor.constraint(equalTo: contentView.topAnchor),
contentStackView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
contentStackView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor)
])
}
그랬더니 이렇게 왼쪽에 딱 붙어있는 리스트가 되었다. 이를 seperate line에 맞춰주기 위해 layoutMarginGuide를 사용했다.
private func configureCellConstraint() {
NSLayoutConstraint.activate([
contentStackView.leadingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.leadingAnchor),
contentStackView.topAnchor.constraint(equalTo: contentView.layoutMarginsGuide.topAnchor),
contentStackView.trailingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.trailingAnchor),
contentStackView.bottomAnchor.constraint(equalTo: contentView.layoutMarginsGuide.bottomAnchor)
])
}
짜잔~ 그러면 이렇게 마진이 생긴다!
그런데 이때 주의할 점이 있다.
현재 이 코드에서는 StackView를 사용하여 한 셀을 구현했다.
이때 contentView에 addSubView를 해주지 않고 cell에 addSubView를 해주면 title이 겹쳐지며 보이지 않는 문제가 생긴다.
private func configureCellSubviews() {
addSubview(contentStackView)
}
마진을 ContentView로 주면서 contentView에 대해 위치를 잡아주었기 때문에 contentView에 추가시켜 주어야 한다.
private func configureCellSubviews() {
contentView.addSubview(contentStackView)
}
☘️ Cell과 ContentView의 차이는?
'🍎 iOS > 🔥 트러블 슈팅' 카테고리의 다른 글
[iOS] Image url 통해 가져와서 view에 띄우거나 갤러리 다운로드하는 방법 2가지 비교 (0) | 2024.02.14 |
---|---|
[iOS] UICollectionViewFlowLayout으로 Pinterest Layout 구현하기 (0) | 2024.01.31 |
[iOS] Test 파일을 넣을 Asset 생성시 오류_ Bundle 사용 (1) | 2024.01.28 |
[iOS] CoreData에서 특정 Entity 내부에 있는 Entity의 특정값을 가져오고 싶을 때(NSPredicate) (2) | 2023.12.20 |
[iOS] storyboard에서 custom init을 한 경우 required init이 필요한 이유 (0) | 2023.11.09 |