๐ญ ๋ค์ด๊ฐ๋ฉฐ
๋ชจ๋ UI ์์์ ํฌ๊ธฐ๊ฐ ๋์ผํ๋ฉด ์ผ๋ง๋ ์ข์๊น์? ํ์ง๋ง ๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ฒ ๋์ฃ ๐ฅฒ ํนํ๋ ์ปจํ ์ธ ์ ์ฌ์ด์ฆ์ ๋ฐ๋ผ์ UI ์ปดํฌ๋ํธ์ ์ฌ์ด์ฆ๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํด์ฃผ๋ ์ํฉ์ ๊ฝค๋ ์์ฃผ ๋ฑ์ฅํฉ๋๋ค. ๊ทธ ์ค์์๋ CollectionView๋ ๋จ๊ณจ ์๋์ ๋๋ค. CollectionView ์์ฒด์ ๋์ด๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ์ํฉ์ด๋, CollectionView Cell์ ๋๋น๋ ๋์ด๋ฅผ ์กฐ์ ํ๋ ์ํฉ์ ์๋ก ๋ค ์ ์๊ฒ ๋ค์!
โจ ์ค๋์ CollectionView Cell์ ๋๋น๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค ใฐ
๐บ ์๊ตฌ์ฌํญ
์ฐ๋ฆฌ๊ฐ ๊ตฌํํด์ผํ ์ํฉ์ ๋ค์๊ณผ ๊ฐ์์. ๋นจ๊ฐ์ ๋ฐ์ค ์์ญ์ ๊ตฌํํด์ผ ํ๋๋ฐ ๊ฐ ์นดํ ๊ณ ๋ฆฌ ์์ญ์ด ํ ์คํธ ๊ธธ์ด์ ๋ง๊ฒ ๋์ ์ผ๋ก ์กฐ์ ๋์ด์ผ ํฉ๋๋ค. ์คํฌ๋กค ๋ทฐ์ ๋ฒํผ์ผ๋ก ๋ฃ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง ์ฐ๋ฆฌ๋ ์ปฌ๋ ์ ๋ทฐ๋ฅผ ์ด์ฉํด๋ณด๋๋ก ํ์ฃ !
๐ ๊ฒ์
์ผ๋จ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ์คํ์ค๋ฒํ๋ก์ฐ(stackoverflow) ๊ฐ๋ณด๋๊ฑฐ์ฃ ~ ๋ค์๊ณผ ๊ฐ์ด ๊ฒ์ํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋๊น ๋งํฌ๊ฐ ํ๋ ๋์ค๋ค์!
dynamic width cell swift
Dynamic cell width of UICollectionView depending on label width
I have a UICollectionView, that loads cells from reusable cell, which contains label. An array provides content for that label. I can resize label width depending on content width easily with sizeT...
stackoverflow.com
๐ ์ ์ฉํ ์ฝ๋
์ ์ฉํ ์ฝ๋๋ ๋๊ฒ ๊ฐ๋จํด์. UICollectionViewDelegateFlowLayout๋ฅผ ์ฑํํ๊ณ Cell Size๋ฅผ ๊ฒฐ์ ํด์ฃผ๋ ๋ธ๋ฆฌ๊ฒ์ดํธ ๋ฉ์๋์์ ์ฌ์ฉํด์ฃผ๋ฉด ๋ฉ๋๋ค.
๐ค ์ฝ๋ ๋ฏ์ด๋ณด๊ธฐ
CGSize๋
CGSize๋ ํฌ๊ธฐ ๊ฐ(๋๋น์ ๋์ด ๊ฐ)์ ํฌํจํ๋ ๊ตฌ์กฐ์ฒด์ ๋๋ค.CGSize.width๋ ๋๋น๋ฅผ ์๋ฏธํ๊ณ , CGSize.height๋ ๋์ด๋ฅผ ์๋ฏธํฉ๋๋ค.
size(withAttributes:) ๋ฉ์๋๋ฅผ ์ด์ฉํด๋ณด์
์๊ตฌ์ฌํญ์ด ํ ์คํธ ํฌ๊ธฐ์ ๋ง์ถฐ์ ์ ์ ๋๋น๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํด์ฃผ์๋ ๊ฒ์ด์๋๋ฐ, ๊ณ ๋ฏผ์ด ๋๋ ๋ถ๋ถ์ 'ํ ์คํธ ํฌ๊ธฐ, ๊ธธ์ด๋ฅผ ์ด๋ป๊ฒ ์์ง?' ์ด ๋ถ๋ถ์ผ ๊ฒ ๊ฐ์ต๋๋ค~ ํ ์คํธ๋ size๋ฅผ ๊ตฌํ ์ ์์๊น์? size ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ๊ตฌํด๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
// ๋ค์ ๋ฉ์๋๋ String ํ์
(์ ํํ NSString ๊ฐ์ฒด) ๋ค์ ๋ถ์ฌ์ ์ฌ์ฉํฉ๋๋ค. size(withAttributes: _)
size(withAttributes:) ๋ฉ์๋ ์ฌ์ฉ ์์
์ค์ ๋ก ์ ์ฉํ๊ธฐ ์ ์ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํด๋ณด๋๋ก ํ ๊ฒ์. Text(String)๋ฅผ ๋๋ฌ์ผ ํ๋์ ์ฌ๊ฐํ์ ์๊ฐํ๊ณ size๋ฅผ ๊ตฌํด์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ์ดํดํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค.
ํ ์คํธ ์ฌ์ด์ฆ ๋งํผ ์ ์ ๋๋น๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๋๊ฒ ๋ค!
ํ ์คํธ์ ์ฌ์ด์ฆ๋ฅผ ์์๋ค๋ฉด ๊ทธ ์ฌ์ด์ฆ๋งํผ ์ปฌ๋ ์ ๋ทฐ ์ ์ ๋๋น๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๋๊ฒ ์ฃ ? ์ ์ ์ข์ฐ์ ์ฌ๋ฐฑ์ ์ฃผ๊ณ ์ถ๋ค๋ฉด ์ ์ ํ๊ฒ ์์น๋ฅผ ๋ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์๋์ฒ๋ผ์.
// ๋ค์์ ์ ํํ ์ฝ๋๋ ์๋๋๋ค. ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์๋์ฝ๋์
๋๋ค. // ์ด์ด์ ์์ฒญํ๊ธฐ ํ
์คํธ ์ฌ์ด์ฆ์ ๋๋น + 20(์ฌ๋ฐฑ)์ ๊ตฌํ๊ฒ ๋ค. "์ด์ด์ ์์ฒญํ๊ธฐ".size(withAttributes: _).width + 20
๐ ๋ง๋ฌด๋ฆฌ
๋ค์์๋ CollectionView ์์ฒด์ ๋์ด๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ ๋์ด๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ถ๋ช ํ ๋ฒ ์ฏค์ ์ฐ์ด๋ ์ํฉ์ด ๋์ค๊ฑฐ๋ ์~ ๊ธ์ด ๊ฝค๋ ๊ธธ์ด์ก๋๋ฐ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค :-) ์๋ชป๋ ๋ด์ฉ ์ง์ ์ด๋ ํผ๋๋ฐฑ, ์กฐ์ธ, ์ง๋ฌธ ๋ฑ ์ธ์ ๋ ํ์์ ๋๋ค!
๐ ๋งํฌ
Dynamic width cell
1๏ธโฃ ๋ฌธ์ ์ํฉ
taekki-ios-wiki.notion.site
Dynamic cell width of UICollectionView depending on label width
I have a UICollectionView, that loads cells from reusable cell, which contains label. An array provides content for that label. I can resize label width depending on content width easily with sizeT...
stackoverflow.com
Apple Developer Documentation
developer.apple.com
'๐ iOS & Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] ์กฐ๊ฑด๋ฌธ(1), if๋ฌธ์ ๋ํ ๊ณ ์ฐฐ (5) | 2022.02.10 |
---|---|
[iOS] UIWindow (0) | 2021.11.07 |
[iOS] ์๋ธ ํด๋์ฑ (6) | 2021.10.07 |
[iOS] Delegate Pattern(๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด) ์์(1) - ์ด์ ํ๋ฉด์ผ๋ก ๋์ด์ค๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ์ถ์ ๋ (4) | 2021.09.09 |
[iOS] Associated Type (3) | 2021.09.05 |