์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[ iOS ] UITableViewCell์—์„œ contentView์™€ self, masksToBounds์™€ clipsToBounds์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด์ž!

๋ณธ๋ฌธ

ํ…Œ์ด๋ธ”๋ทฐ ์ „์ฒด์— cornerRadius๋ฅผ ์ฃผ๊ณ  ์‹ถ์€๋ฐ ์ ์šฉ์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. 

์˜์—ญ์„ ํ™•์ธํ•ด๋ณด๊ณ ์ž ๋ฐฑ๊ทธ๋ผ์šด๋“œ์ปฌ๋Ÿฌ๋ฅผ ์ฃผ๊ณ ํ™•์ธํ•ด๋ณด๋‹ˆ ์…€ ๋ถ€๋ถ„์ด ์ ์šฉ์ด ๋˜์ง€ ์•Š์•˜๋‹ค. 

 

๊ทธ๋ž˜์„œ ์ ์šฉ์„ ํ•ด๋ดค๋Š”๋ฐ ์ž˜ ๋˜์ง€ ์•Š์•˜๋‹ค. 

์‚ฌ์‹ค cell์— ์ ์šฉ์„ ํ•ด์ฃผ๊ณ  ์‹ถ์€๋ฐ ์—ฌ๊ธฐ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์…€์— ์ค˜์•ผํ•  ์ง€ ๊ณ ๋ฏผ์ด์—ˆ๋‹ค. 

 

 

ํŒ€์›๋“ค๊ณผ ์–˜๊ธฐ๊ฐ€ ๋‚˜์˜จ ๊น€์— ์ด๊ฒƒ ์ €๊ฒƒ ๋งŽ์ด ์‹œ๋„ ํ•ด๋ณธ ๊ฒฐ๊ณผ...ใ…‹ใ…‹ใ…‹

 

 

๊ทธ๋ž˜์„œ contentView์™€ self ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฑฐ์ง€..?

๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์€ ํ˜„์žฌ ํ…Œ์ด๋ธ”๋ทฐ์—๋งŒ cornerRadius ์ ์šฉ์ด ๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

cell์—๋„ cornerRadius์„ ์ฃผ๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ!

 

 

self

: ์…€ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, UITableViewCell ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค.

์…€์˜ ์ „์ฒด ์˜์—ญ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ์…€์˜ ๋ฐฐ๊ฒฝ์ƒ‰, ๊ฒฝ๊ณ„์„ , ๊ทธ๋ฆผ์ž ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ์†์„ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

contentView

: ์…€ ์•ˆ์— ์‹ค์ œ๋กœ ํ‘œ์‹œ๋˜๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ด๋Š” ๋ทฐ. ์…€์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ชจ๋“  ์„œ๋ธŒ๋ทฐ(๋ ˆ์ด๋ธ”, ์ด๋ฏธ์ง€๋ทฐ ๋“ฑ)๋Š” ์ด contentView ์•ˆ์— ๋„ฃ๋Š”๋‹ค.

์…€์˜ ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ , ์ฝ˜ํ…์ธ ์˜ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

์ฆ‰, self๋Š” ์…€์˜ ์ „์ฒด ์˜์—ญ, contentView๋Š” ์…€ ์•ˆ์— ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ด๋Š” ๋ทฐ.

self๋Š” ํ…Œ๋‘๋ฆฌ, ๊ทธ๋ฆผ์ž, ๋ฐฐ๊ฒฝ ์ฒ˜๋ฆฌ์— ์ฃผ๋กœ ์“ฐ์ด๊ณ , contentView๋Š” ์‹ค์ œ ์ฝ˜ํ…์ธ  ๋ฐฐ์น˜์— ์“ฐ์ธ๋‹ค.

 

 

๊ทธ๋Ÿผ ์ด๋ฏธ์ง€๊ฐ€ cornerRadius์— ๋งž๊ฒŒ ์ž˜๋ฆฌ๊ฒŒ ํ•˜๊ณ  ์‹ถ์€๋ฐ???

masksToBounds

: CALayer์˜ ์†์„ฑ์œผ๋กœ, ์ด ๋ ˆ์ด์–ด์˜ ๊ฒฝ๊ณ„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๋ชจ๋“  ์„œ๋ธŒ ๋ ˆ์ด์–ด๋ฅผ ์ž˜๋ผ๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

์ฆ‰, ๋ ˆ์ด์–ด์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋ชจ๋“  ์„œ๋ธŒ๋ทฐ๋‚˜ ์„œ๋ธŒ ๋ ˆ์ด์–ด๋“ค์ด ๋ณด์ด์ง€ ์•Š๋„๋ก ์ž๋ฅธ๋‹ค.

 

cornerRadius์„ ์„ค์ •ํ–ˆ์„ ๋•Œ, ์ฝ”๋„ˆ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ์„œ๋ธŒ๋ทฐ๋‚˜ ๊ทธ๋ฆผ์ž๋ฅผ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์ด ์†์„ฑ์ด true์ผ ๋•Œ ๋ ˆ์ด์–ด์˜ cornerRadius๊ฐ€ ์ ์šฉ๋˜์ง€๋งŒ, ๊ทธ๋ฆผ์ž(shadow)๋Š” ์ž˜๋ฆฐ๋‹ค.

 

clipsToBounds

: UIView์˜ ์†์„ฑ์œผ๋กœ, ํ•ด๋‹น ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚œ ์„œ๋ธŒ๋ทฐ๋ฅผ ์ž˜๋ผ๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋ทฐ๊ฐ€ ๊ฐ€์ง„ ์„œ๋ธŒ๋ทฐ๋“ค์ด ๊ทธ ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚  ๊ฒฝ์šฐ, ํ•ด๋‹น ์˜์—ญ์„ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

masksToBounds์™€ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ์ฃผ๋กœ UIView์˜ ๋ ˆ์ด์•„์›ƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค.

 

 

 

๊ทผ๋ฐ, ์™œ ๋‘˜ ๋‹ค ํ•„์š”ํ•œ๊ฐ€?

masksToBounds = true

: ๋ ˆ์ด์–ด ์ˆ˜์ค€์—์„œ ์…€์˜ ๊ฒฝ๊ณ„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ž˜๋ผ๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๋ฅผ ์ ์šฉํ–ˆ์„ ๋•Œ, ๊ทธ ์™ธ๋ถ€ ์˜์—ญ์œผ๋กœ ๋‚˜๊ฐ€๋Š” ์š”์†Œ๋“ค์„ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

 

clipsToBounds = true

: ์…€์˜ ์„œ๋ธŒ๋ทฐ๊ฐ€ ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒƒ์„ ์ œ์–ดํ•œ.

์…€ ์•ˆ์˜ contentView๋‚˜ ๋‹ค๋ฅธ ๋ทฐ๊ฐ€ ์…€ ๊ฒฝ๊ณ„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ