๋ฌธ์
์ฑํ ํ๋ฉด ๊ตฌํ ์, ์ ์ ๊ฐ ์ผ๋ง๋ ๊ธด ์ฑํ ์ ๋ณด๋ผ์ง ์ ์ ์์ผ๋ฏ๋ก, ๊ฐ ์ฑ์ cell ๋์ด๊ฐ ํ ์คํธ ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ก ๊ตฌํํด์ผ ํ๋ค.
UITableView์ cell ๋์ด๋ฅผ cell ๋ด๋ถ ๋ทฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ ๋์ ์ผ๋ก ๋ณํ๋๋ก ๊ตฌํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋, ํด๋น UITableView์ rowHeight ํ๋กํผํฐ๋ฅผ UITableView.automaticDimension์ผ๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
private func configureTableView() {
// ์๋ต
chatsView.tableView.rowHeight = UITableView.automaticDimension
// ์๋ต
}
์ด๋ ๊ฒ UITableView.automaticDimension์ ์ฌ์ฉํ๋ ค๋ฉด, cell ๋ด๋ถ ๋ทฐ๋ค์ constraints๊ฐ ๋ชจ๋ ์ ์กํ ์์ด์ผ ํ๋ค.
๋์ด๋ฅผ dynamicํ๊ฒ ์กฐ์ ํ๊ธฐ ๋๋ฌธ์ y์ถ ์์น(์ธ๋ก ์์น)๊ฐ ์ ์กํ ์์ด์ผ ํ๋๋ฐ,
centerY๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ์ด์์์ ์ก์ ๊ฒฝ์ฐ UITableView.automaticDimension์ด ์ ์ฉ๋์ง ์์๋ค.
ํด๊ฒฐ
class ChatTableViewCell: BaseTableViewCell {
// MARK: - Properties
let chatView = UIView()
// MARK: - Setting Methods
override func setHierarchy() {
contentView.addSubview(chatView)
}
override func setConstraints() {
chatView.snp.makeConstraints { make in
make.width.lessThanOrEqualToSuperview().multipliedBy(0.7)
// make.centerY.equalToSuperview()
// ๐๐ป UITableView.automaticDimension ๋์ X!
make.verticalEdges.equalToSuperview().inset(12)
// ๐๐ป UITableView.automaticDimension ๋์ O!
}
timeLabel.snp.makeConstraints { make in
make.bottom.equalTo(chatView)
}
}
}
top๊ณผ bottom, ์ฆ SnapKit์ ๊ธฐ์ค์ผ๋ก ํ์ ๋ verticalEdges ๊ธฐ์ค์ผ๋ก ๋ ์ด์์์ด ์กํ ์์ด์ผ๋ง
UITableView.automaticDimension์ด ์ ์ฉ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
'๐งฏ Troubleshooting' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Cheliz] UICollectionViewCell ๋ด ๊ฐ์ฒด์ action ์ฒ๋ฆฌ (0) | 2023.02.09 |
---|---|
[Cheliz] Enumeration ํ์ ์ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ ๋ชจ๋ธ๋ก parsingํ๊ธฐ (0) | 2023.02.09 |
[SWM] CLLocationManagerDelegate - ํธ์ถ๋์ง ์๋ ๋ฉ์๋ (1) | 2023.02.07 |
[StudyWithMe] UIDatePicker ์ธ์ด Issue (0) | 2023.02.07 |
[StudyWithMe] UITableView - Dynamic Header Height (0) | 2023.02.07 |