๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

iOS/TIL

22.07.20 ใ…ฃ UICollectionViewController & Struct ๊ตฌ์กฐ์ฒด ํ™œ์šฉ

 

 

 

UICollectionViewController 

 

 

 

UICollectionViewController ๋Š” ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์”ฌ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋Š” Controller ์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜UICollectionViewController๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” UICollectionViewFlowLayout ์˜ ๊ฐœ๋…์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

- itemSize 

layout.itemSize = CGSize(width: width/2, height: width/2)

์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ์ ์ธ ์•„์ดํ…œ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. 

 

 

- minimumLineSpacing

 

minimumLineSpacing ๋ž€ cell ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•  ๋•Œ ์ตœ์†Œํ•œ ์ด ์ •๋„๋Š” ๋–จ์–ด์ ธ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. 

 

 

- minimumInteritemSpacing 

 

minimumLineSpacing ์ด ์ƒํ•˜๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋ƒˆ๋‹ค๋ฉด minimumInteritemSpacing ๋Š” ์ขŒ์šฐ ๊ฐ„๊ฒฉ์˜ ์ตœ์†Œ ๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 

 

 

- SectionInset

layout.sectionInset = UIEdgeInsets(top: spacing, left: spacing, bottom: spacing, right: spacing)

 

 

 

SectionInset๋Š” ์œ„ ์‚ฌ์ง„์˜ ํ…Œ๋‘๋ฆฌ ๋ถ€๋ถ„์˜ ๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. 

 

 

Struct ๊ตฌ์กฐ์ฒด ํ™œ์šฉ

 

UICollectionView ์—์„œ ํ•œ Cell ์•ˆ์— ๋‹ค์–‘ํ•œ ๋‚ด์šฉ์„ ๋‹ด์„ ๋•Œ, ์œ ์šฉํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ Struct ๊ตฌ์กฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 

 

 

์šฐ์„  ์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ์šด Swift ํŒŒ์ผ์— Cell ์•ˆ์— ๋“ค์–ด๊ฐˆ ์š”์†Œ๋“ค์„ ์„ ์–ธํ•ด์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ ์–ธํ•˜๋Š” ์ด์œ ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด BookStruct์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. 

 

 

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ, ๋ชจ๋“  ์ฑ…์„ ํฌ๊ด„ํ•˜๋Š” BookInfo ๋ผ๋Š” ๋” ํฐ ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด์–ด์„œ, book ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— BookStruct๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ค€ ํ›„ ๊ฐ Cell ์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ๋“ค์„ ์ ์–ด์ค๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ bookName์„ ํ†ตํ•ด BookInfo ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. 

 

 

Kingfisher ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์„œ, ๋งํฌ๋งŒ์„ ์ด์šฉํ•ด ์ด๋ฏธ์ง€๋ทฐ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๋Š” ์ž‘์—…๋„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์„ ์–ธํ•œ data ๋Š” bookName ๋ฐฐ์—ด์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ ์›์†Œ๋“ค์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.