์๋ ํ์ธ์~
์ค๋์ UILabel์ intrinsicContentSize์ ๋ํด์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค : )
์งํํ๊ณ ์๋ ํ๋ก์ ํธ์์ CollectionViewCell์ ํฌ๊ธฐ๋ฅผ Cell์์ ์๋ Label์
ํ ์คํธ ๊ธธ์ด, ํฐํธ์ ์ฌ์ด์ฆ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ์ฃผ๊ณ ์ถ์์ต๋๋ค.
์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค ์ค์์ IntrinsicContentSize๋ฅผ ์๊ฒ ๋์๊ณ
์ด๋ป๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ์ง ๋ฐฉ๋ฒ์ ๊ณต์ ํ๋ ค๊ณ ํฉ๋๋ค.
intrinsicContentSize - ์ฝํ ์ธ ์ ๋ณธ์ง์ ์ธ ์ฌ์ด์ฆ
- UILabel ๋ฟ๋ง ์๋๋ผ UIButton, UISwitch, UITextField์๋ ์๋ ํ๋กํผํฐ๋ก ํด๋น ๊ฐ์ฒด์ Width์ Height์ ๊ณ ์ณ๊ฐ์ผ๋ก ๊ฐ์ง๊ณ ์์ต๋๋ค.
- UIView์๋ ์์ผ๋ฉฐ UISlider์๋ Width๊ฐ๋ง ์กด์ฌํฉ๋๋ค.
- AutoLayout์ด๋ SnapKit๊ณผ ๊ฐ์ ์ฝ๋ ๋ฒ ์ด์ค๋ก UI๋ฅผ ๋ง๋ค ๋ width์ height์ด ์ ํด์ ธ ์์ง ์๋๋ผ๋ ์ ์ฝ์กฐ๊ฑด์์ ์๋ฌ๊ฐ ๋์ง ์๋ ์ด์ ๋ intrinsicContentSize๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ์ฉ๋ฐฉ๋ฒ
์ทจ๋ฏธ ์ ๋ ฅ ํ๋ฉด |
---|
CollectionView์ '์ง๊ธ ์ฃผ๋ณ์๋' ์น์ ์ ์๋ ์ ์ ํด๋ฆญํ๋ฉด
'๋ด๊ฐ ํ๊ณ ์ถ์' ์น์ ์ ํ์ํด ์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค.
๋ ์น์ ์ ํ ์คํธ๋ ๊ฐ์ง๋ง '๋ด๊ฐ ํ๊ณ ์ถ์' ์น์ ์ ํ ์คํธ์๋ "X"๊ฐ ์ถ๊ฐ๋์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ธฐ์กด์ Label์ ์ฌ์ด์ฆ๋ณด๋ค "X" ๋งํผ ์ปค์ง ์ํ๋ก ๋ฃ์ด์ฃผ๊ณ ์ถ์์ต๋๋ค.
๊ทธ๋์ sizeForItemAt์ ์ด์ฉํด ๊ฐ ์ ์ ์ฌ์ด์ฆ๋ฅผ ๋ฐํํ ๋
Label์ intrinsicContentSize๋ฅผ ํ์ฉํ์ต๋๋ค.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let label = UILabel()
label.text = indexPath.section == 0 ? viewModel.userItems[indexPath.row].hobby : viewModel.wantItems[indexPath.row] + " X"
return CGSize(width: label.intrinsicContentSize.width + 10, height: label.intrinsicContentSize.height + 10)
}
์ถ๊ฐ์ ์ผ๋ก
ํจ๋ฉ์ ๊ฐ์ง๊ณ ์๋ Label์ ๋ง๋ค๊ณ ์ถ์ ๋ ์ด ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฉํฉ๋๋ค.
์์ ์ฝ๋์ฒ๋ผ height๊ฐ๋ ์ถ๊ฐ์ ์ผ๋ก ์ํ๋ ๋งํผ ๋ฃ์ด์ฃผ๊ฒ ๋๋ฉด
์ํ์ ํจ๋ฉ์ด ๋ค์ด๊ฐ ์๋ ํํ๋ก ๋ณด์ด๊ฒ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํน์ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ผ์๋ค๋ฉด ๋๊ธ๋ก ๊ณต์ ํด ์ฃผ์๋ฉด๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ์ด๋ง ๐๐ป ๐๐ป ๐๐ป
'iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ์ฑํ UI ๊ตฌํํด๋ณด๊ธฐ(1) (0) | 2022.03.03 |
---|---|
[swift] ๋ฒํผํด๋ฆญ ์ ๋๋กญ๋ค์ด๋๋ ๋ทฐ๋ฅผ ๋ง๋ค๊ธฐ (1) | 2022.03.02 |
[swift] NavigationController์ setViewController ์ฌ์ฉ๋ฐฉ๋ฒ (0) | 2022.02.18 |
[swift] TableViewCell/CollectionViewCell ์ ์์ ๋ฒํผ์ ์ด๋ฒคํธ๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ (0) | 2022.02.17 |
[swift] Timer๋ฅผ ํ์ฉํ API ๋ฐ๋ณตํธ์ถ ๋ฐฉ๋ฒ (0) | 2022.02.16 |