๋ถํฌ๋ช ํ ๋ทฐ๋ ์ด๋ป๊ฒ ๋ง๋๋๊ฑฐ์ง? ๊ทธ๊ฒ ๋ฐ๋ก ์ด๊ฑฐ์๋ค.
Materials
iOS๋ ๊น์ด๊ฐ์ ๋๋ ์ ์๋๋ก ํ๋ ๋ฐํฌ๋ช
ํจ๊ณผ๋ฅผ ์ ๊ณตํ๋ค. Blur Effect ํน์ Material์ผ๋ก ๋ถ๋ฅด๋ ์น๊ตฌ๋ค. HIG์์๋ ํด๋น ํ๋ฉด์ ์ฌ์ฉํ๋ฉด, foreground์ ์ฌ๋ผ์์๋ content๋ฅผ ๋ฐฉํดํ์ง ์์ผ๋ฉด์๋ background view์ control์ ๋ํ hint๋ฅผ ์ป๋ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฅ ์๋ป์ ์ฐ๋๊ฑฐ ์๋์์ด?
Material์ ์ฌ์ฉํ๋ฉด ์ด๋ฐ Blur ํจ๊ณผ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์, foreground์์ ๋ณด์ด๋ ํ๋ฉด์ ๋ณด์ด๊ธฐ ์ํด blur ํจ๊ณผ๋ฅผ ์ฃผ๊ณ , background color๋ฅผ ๋ณด์ด๊ฒ ํ๊ธฐ ์ํด ํฌ๋ช ํ๊ฒ ํ๋ค.
์ข ๋ฅ๋ Thick, Regular, Thin, Ultrathin 4๊ฐ์ง๋ฅผ ๊ฐ์ง๋ค. ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์๋ก ๋ท ๋ฐฐ๊ฒฝ์ด ๋ณด๋ค ๋ง์ด ๋ณด์ด๋ ํน์ง์ ๊ฐ๋๋ค.
How to Use Them
์ฐ๋ฆฌ์ ๋ชฉ์ ์ด ์ข์ธก ํ๋ฉด์์ ์ฐ์ธก ํ๋ฉด๊น์ง ๋ง๋๋ ๊ฒ์ด๋ผ ์๊ฐํด๋ณด์.
Blur Effect
๋จผ์ , UIBlurEffect
๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น style์ ์์์ ๋ณธ 4๊ฐ์ง ์ข
๋ฅ์ค์ ํ๋๋ฅผ ์ ํํด์ค๋ค.
๋ค์์ผ๋ก๋ ์ด View์ size์ position์ ์ ํด์ฃผ๋ UIVisualEffectView
๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ฐํ view ๊ณ์ธต์ ๋ฃ์ด์ฃผ์ด์ผ ๋ณด์ผ ๊ฒ์ด๋ค. ์ฆ view๋ฅผ ๋ง๋ค๊ณ UIBlurEffect
๋ฅผ ์ ์ฉํ๋ฉด ๋๋ค.
let blurEffect = UIBlurEffect(style: .regular)
let blurView = UIVisualEffectView(effect: blurEffect)
self.view.addSubview(blurView)
Vibrancy Effect
๊ทธ ์์ vibrant content๋ฅผ ์ฌ๋ฆด ์ ์๋ค. ํด๋น ๊ธฐ๋ฅ์ VisualEffectView ์์, ์ฆ Subview๋ก ์ฌ๋ ค์ ธ์ ์ฌ์ฉ๋๋ ๊ฒ์ ์๋ํ๊ณ ๋ง๋ ํด๋์ค์ด๋ค. ์ด๊ฑธ ์ฌ์ฉํ๋ฉด, Content view ๋ด๋ถ์ ๋ฐฐ์น๋ ์ปจํ ์ธ ๊ฐ ๋์ฑ ์์ํด์ง๋ค.
์ด Vibrancy effect๋ color์ ์์กด์ ์ด๋ค. Color๋ ๋ฌด์๋๊ณ Alpha ๋ง ์ฌ์ฉ๋๋ค.
๋ํ content view์ ์ถ๊ฐํ subview๋ค์ tintColorDidChanged()
๋ฉ์๋๋ฅผ ํญ์ override ํด์ผ ํ๋ค. ์์ธ ์ฌํญ์ผ๋ก UIImage.RenderingMode.alwaysTemplate
๊ฐ ์ค์ ๋ UIImageView
๋๋ UILabel
์ ๊ฒฝ์ฐ tintColorDidChanged()
๋ฅผ overrideํ ํ์๊ฐ ์๋ค. ์๋์ ์ผ๋ก tintColor๋ฅผ ์
๋ฐ์ดํธ ํด์ค๋ค.
์ง๊ธ ๊ฐ์ ๊ฒฝ์ฐ์๋ Blur View์์ vibracy view๋ฅผ ๋ฃ๋๋ฐ, ๊ทธ vibrancy view๋ blur ๋์ด์ผ ํ๋ค. ์ฝ๋๋ก ๋ฃ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค. style์ ์์์ ๊ฒฐ์ ํ๋ฉด ๋๋ค.
let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect, style: .fill)
let vibrancyView = UIVisualEffectView(effect: vibrancyEffect)
/** ๋๋..
vibrancyView.effect = vibrancyEffect
**/
blurView.contentView.addSubview(vibrancyView)
์ฌ์ค ์ฌ๊ธฐ๊น์ง ์ฝ์ด๋ ๋ญ์๋ฆฐ์ง ์ ๊ฐ์ด ์์จ๋ค. apple ์ค๋ช ์์ ๋์จ imageView์ Label์ ๋น๊ตํด๋ณด๋ฉด ์์ ๊ฐ๋ค.
vibrancy๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ค์ Blur๊ฐ ๋์ด ์๋๋ผ๋ ์ฌ๋ ค์ง content์ ์์์ด ๊ทธ๋๋ก ํํ๋จ์ ์ ์ ์๋ค. ๋ฐ๋๋ก vibrany view๋ฅผ ์ถ๊ฐํ ํ์ label์ ์ฌ๋ฆฐ ๊ฒฝ์ฐ (์ด๋ฒ์๋ vibrancy view์ blur๋ฅผ ๋บ๊ฑฐ๋ผ ์ด๋ ๊ฒ ํํ๋ ๊ฑฐ๋ค), ๋ด๋ถ content๊ฐ ๋ญ๊ฐ blur ํ๋ฉด์๋ ์ฝ์ ์ ์๋..? ์๋๊ฐ์๊ฒ ํํ๋์๋ค. ๋ญ๊ฐ blur์ ์ ์ด์ธ๋ฆฌ๋ ์์?์ผ๋ก ๋ณ๊ฒฝ๋์๋ค. ๋๋ฌด ์ข๋ค.
๋ ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ณ ์ถ๋ค๋ฉด ์ด ๊ทธ๋ฆผ์ ๋ณด์. (์ถ์ฒ: Zedd) 1๋ฒ์ ๊ฒฝ์ฐ ๊ธฐ์กด ํํธ์ ์์ด ํ๋์์ด์์์๋ ๋ถ๊ตฌํ๊ณ , 2๋ก ๊ฐ๋ฉด์ ์์ด ๋ณํ๋์๋ค. ์ฆ ์์ด blurView์ ์์กด์ ์ผ๋ก ๋ณํํ๋ค.
์ค๋ฅธ์ชฝ์ ์์ ์ ์๋ ์์ธ ์ฌํญ์ ๋ํ ์ค๋ช
์ด๋ค. UIImage
์ rendering mode๋ฅผ templates๋ก ํ์ง ์์์ ๊ฒฝ์ฐ, ์์ด ๋ณํํ์ง ์๊ณ ๊ทธ๋๋ก ํํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ค์ํ๋ฒ ๋งํ์ง๋ง, UIImageview
, UILabel
์ ์ ์ธํ ๋
์๋ค์ vibrancy๊ฐ ์๋ ์ ์ฉ๋์ง ์์ tintColorDidChanged()
๋ฅผ overrideํด์ผ ํ๋ค.
์ด๋ฌํ ํ๋ฆ์ ํํํ ๊ฒ์ด WWDC ์ธ์ ์์ ๊ทธ๋ฆฐ ์ด ๊ทธ๋ฆผ์ด๋ค.
UIBlurEffect
๋ฅผ ๋ง๋ค๊ณUIVisualEffectView
์ ์ ์ฉํ์ฌ View๋ฅผ ๋ง๋ ๋ค.- 1์ View๋ฅผ
VC.view
์ ์ถ๊ฐํ๋ค. UIVibrancyEffect
๋ฅผ ๋ง๋ค๊ณUIVisualEffectView
์ ์ ์ฉํ์ฌ View๋ฅผ ๋ง๋ ๋ค.- 3์ View๋ฅผ
1.contentView
์ ์ถ๊ฐํ๋ค. - 3์ view ์๋(subview)์
UILabel
๊ณผ ๊ฐ์ component๋ฅผ ์ถ๊ฐํ๋ค.
Apple์ ์ด๋ฌํ Vibrant๋ ์ฌ๋ฌ๊ฐ์ง ๋ง๋ค์ด๋์๋ค.
๋ง๋ฌด๋ฆฌ
Blur๊ด๋ จํด์ ์ด๋ป๊ฒ ํ๋ ๊ฑด์ง ๊ถ๊ธํ๋๋ฐ ์ ์์๋ณธ ๋ฏ ํ๋ค. ๊ทธ๋ฆฌ๊ณ Apple ์์์ ์๊ฐ๋ณด๋ค ์ด ์์๊ฐ ๋ง์ด ๋ฐ์๋์ด ์๋ค๋ ๊ฒ์ ํ์ธํ๋ ์ข์ ๊ธฐํ์๋ค. ๋!