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
- MVVM
- Xcode
- 리펙토링
- 애니메이션
- 스위프트
- SWIFT
- Human interface guide
- Protocol
- uiscrollview
- rxswift
- combine
- Observable
- ios
- swift documentation
- map
- collectionview
- ribs
- UICollectionView
- Refactoring
- 리펙터링
- tableView
- 리팩토링
- swiftUI
- 클린 코드
- HIG
- Clean Code
- clean architecture
- RxCocoa
- uitableview
- UITextView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] tableView cell 간 간격 설정, cell 선택 UI (contentView.frame.inset, setSelected) 본문
iOS 응용 (swift)
[iOS - swift] tableView cell 간 간격 설정, cell 선택 UI (contentView.frame.inset, setSelected)
jake-kim 2021. 8. 6. 02:34
Cell 선택 UI 설정 방법
- custom cell이 있다면 custom cell의 setSelected(:animated:) 함수에서 사용
- tableView가 표출될때 초기에는 모든 cell이 선택되지 않은 상태
- 하나를 선택하면 나머지 cell이 선택되지 않은 상태가 되고 해당 cell 하나만 선택되게끔 내부적으로 동작
// 선택, 미선택에 따라 cell의 테두리 색깔을 다르게 하는 부분
// UITableViewCell을 상속받은 customCell안에서 override
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
if selected {
contentView.layer.borderWidth = 2
contentView.layer.borderColor = UIColor.blue.cgColor
} else {
contentView.layer.borderWidth = 1
contentView.layer.borderColor = UIColor.lightGray.cgColor
}
}
Cell 간 간격 설정
- Cell에 inset주는 방법
- layoutSubviews메소드안에서, contentView.frame을 재설정하는데, 기존 frame에 inset값을 더한 값으로 재설정
// UITableViewCell을 상속받은 custom cell에서 layoutSubviews메소드 override
override func layoutSubviews() {
super.layoutSubviews()
contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 16.0, left: 16, bottom: 16, right: 16))
}
* 전체 source code: https://github.com/JK0369/TableViewCellExample
'iOS 응용 (swift)' 카테고리의 다른 글
Comments