๐ŸŽ Dev/Issue

[Issue/UIKit] fullScreen vs OverFullScreen

Callie_ 2023. 8. 6. 14:04

 

๐Ÿ™ ๋ฌธ์ œ์ƒํ™ฉ : ๊ณผ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š” ๋„์ค‘, ๋‹ค๋ฅธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ™”๋ฉด์— ๊ฝ‰ ์ฐฌ ํŒ์—…์ฐฝ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋ฉฐ ํŒ์—…์ฐฝ์œผ๋กœ ๋งŒ๋“  UIView ์™ธ์˜ ์˜์—ญ์—” ํŒ์—…์ฐฝ VC๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „ ํ™”๋ฉด์„ ์–ด๋‘ก๊ฒŒ ๋ณด์ด๊ณ  ์‹ถ์—ˆ๋‹ค. ๋‚˜ํ•œํ…Œ ํ™”๋ฉด์— ๊ฝ‰ ์ฐฌ VC ์ „ํ™˜์€ ๋‹น์—ฐํžˆ fullScreen ์ด๋ผ๊ณ  ์™ธ์›Œ๋‘๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •์ž‘ ์ ์šฉํ–ˆ์„ ๋•Œ ์›ํ•˜๋Š” ๋ฐ”๊ฐ€ ์ด๋ค„์ง€์ง€ ์•Š์•˜๋Š”๋ฐ ...

 

โœ๏ธ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•: ์‚ฌ์‹ค ๋‚ด๊ฐ€ ๊ฐ„๊ณผํ•œ ๊ฒƒ์ด modal present style์ด ๋‹ค์–‘ํ•˜๋‹ค๋Š” ๊ฒƒ๊ณผ ๋‚ด๊ฐ€ ์ฃผ๋กœ fullScreen ์˜ต์…˜๋งŒ ์‚ฌ์šฉํ•ด์„œ ๋‹ค๋ฅธ ์˜ต์…˜์˜ ์กด์žฌ๋ฅผ ๊นŒ๋งˆ๋“ํ•˜๊ฒŒ ์žŠ๊ณ  ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ. ๊ทธ๋Ÿฌ๋‹ˆ ์˜ต์…˜์— ๋Œ€ํ•ด์„œ ํ•œ์ •์ ์œผ๋กœ ๊ธฐ์–ตํ•˜์ง€ ๋ง์ž๋Š” ์˜๋ฏธ๋กœ ๊ธฐ๋กํ•ด๋‘๊ธฐ๋กœ ํ–ˆ๋‹ค. (์Šต๊ด€์ ์œผ๋กœ ์•”๊ธฐํ•˜๋ ค๊ณ  ๋“œ๋Š” ๊ฑธ ๊ฒฝ๊ณ„ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๋ฉฐ ๊นจ๋‹ซ๋Š” ๊ฑด ๊ฐœ๋ฐœ์€ ์‚ฌ๊ณ ์˜ ๋ถ„์•ผ์ง€ ์•”๊ธฐ ๋ถ„์•ผ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ...!)

 

 

 

 

 

 

 

(1) .fullScreen

	//SelectTamaViewController์— cell์„ ๋ˆ„๋ฅด๋ฉด popUpViewController์˜ ๋‚ด์šฉ์ด ํŒ์—…์œผ๋กœ ๋œจ๊ฒŒ ํ•˜๋ ค๋Š” ๊ฒŒ ๋ชฉ์ 
        

	guard let popUpViewController = self.storyboard?.instantiateViewController(withIdentifier: "popUpViewController") else {return}
        
        popUpViewController.modalPresentationStyle = .fullScreen
        
        self.present(popUpViewController, animated: true, completion: nil)

 

(guard let ๋ฌธ๋ฒ•๋„ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ฒ˜์Œ ์จ๋ดค๋‹ค. ๊ทผ๋ฐ ์•„์ง ๊ธด๊ฐ€๋ฏผ๊ฐ€ํ•ด์„œ ๋‚˜๋ฆ„๋Œ€๋กœ ์จ๋†“๊ธด ํ–ˆ์ง€๋งŒ ๋ญ๋ž„๊นŒ, ์˜ค๋ฅ˜๋„ ์•ˆ ๋œจ๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž‘๋™์€ ์ž˜ ๋˜์ง€๋งŒ ์˜ ๋ฏธ๋ฅ์ง€์•Š๋‹ค. ์—ฌ๊ธฐ์„œ.. ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด.. ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ• ๊ฑด๋ฐ? guard let ๊ณต๋ถ€๋ฅผ ์ œ๋Œ€๋กœ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.)

 

 

์—ฌ๊ธฐ์„œ ๋‚ด๊ฐ€ ๊ธฐ์–ตํ•ด์•ผํ•  ํฌ์ธํŠธ๋Š” ์ ์šฉํ• ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ.modalPresentationStyle = .fullScreen

fullScreen์€ ๋ง๊ทธ๋Œ€๋กœ ๋ถˆ๋Ÿฌ์˜จ VC๋กœ ํ™”๋ฉด์„ ํ†ต์งธ๋กœ ๋ฎ์–ด๋ฒ„๋ฆฐ๋‹ค.

 

๊ทธ๋ž˜์„œ ์–ด๋ผ? ์ด๊ฒŒ ์™œ์ด๋Ÿฌ์ง€?! ํ•˜๊ณ  ๋‹นํ™ฉํ–ˆ๋Š”๋ฐ ์กฐ๊ธˆ๋งŒ ๊ฒ€์ƒ‰ํ•ด๋„ ๋‚˜์˜จ๋‹ค. style์„ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค๋Š” ๊ฑธ.

 

 

 

 

 

 

 

 

(2) .overFullScreen

 

 

popUpViewController.modalPresentationStyle = .overFullScreen

 

์œ„ ์ฝ”๋“œ์—์„œ ๋”ฑ ์Šคํƒ€์ผ๋งŒ ๋ฐ”๊ฟ”์คฌ๋Š”๋ฐ ๋ฐ”๋กœ ์›ํ•˜๋Š” ๋Œ€๋กœ ํ™”๋ฉด ๊ตฌํ˜„์ด ๋˜์—ˆ๋‹ค. ์ด ๊ณผ์ œ ๋๋‚˜๋ฉด ์•„๋ฌด๋ž˜๋„ modal present style ์ •๋ฆฌ๋„ ๋‹ค์‹œ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์ˆ˜์—… ๋“ค์„ ๋‹น์‹œ์—” ์ข…๋ฅ˜๋„ ์ ๊ณ , ์ž์ฃผ ์“ธ ๊ฒƒ ๊ฐ™์€๊ฒŒ ๋ช‡๊ฐœ ์•ˆ๋˜์–ด์„œ ํ•„์š”ํ•  ๋•Œ ์ฐพ์œผ๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค. ๋„ˆ๋ฌด ์•ˆ์ผํ–ˆ๋‹ค. ๊ทธ๋ƒฅ... ๊ทธ๋ƒฅ ๋‹ค๋ฅธ ์„ ํƒ์ง€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฑธ ๊ธฐ์–ตํ•˜์งˆ ๋ชปํ•œ๋‹ค. 

 

 

 

 

 

 

 

 

(3) ๋ค์œผ๋กœ, ๋’ค์— ๋‹ค๋ฅธ VC(ํŒ์—…์ฐฝ์„ ๋„์šด VC)๊ฐ€ ๋ณด์ด๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€๋„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๊ธฐ๋กœ.

 

 

 

 

 

 

- ์ด ๋‹จ๊ณ„์—์„  ํŒ์—…์ฐฝ์œผ๋กœ ์“ธ VC์˜ ๋ฐฐ๊ฒฝ์ƒ‰์ด ์ค‘์š”ํ•˜๋‹ค. 

 

 

 

 

- ๋’ค๋กœ ๊น”๋ฆฌ๋Š” VC๋ฅผ ๋น„์ถ”์–ด์ฃผ๋ ค๋ฉด ๋ฐฐ๊ฒฝ์ƒ‰์ด ๋ถˆํˆฌ๋ช…ํ•ด์•ผํ•ด์„œ opacity๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Custom ์œผ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.

 

 

 

 

 

 

- custom์„ ๋ˆ„๋ฅด๋ฉด, ์ปฌ๋Ÿฌํ”ผ์ปค๊ฐ€ ๋œจ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ Opacity๋ฅผ ๋Œ€๊ฐ• 50% ์ดํ•˜๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ํŒ์—…์ฐฝ์œผ๋กœ ๋งŒ๋“  UIView ์™ธ ํ™”๋ฉด์—” ์›๋ž˜ VC ํ™”๋ฉด์ด ์–ด๋‘ก๊ฒŒ ๋น„์น˜๋“ฏ ๋ณด์—ฌ์ง„๋‹ค.

 

 

 

 

 

 

 


 

 

 

 

 

 

๐Ÿ“Œ fullScreen vs OverFullScreen ์ •๋ฆฌ

 

fullScreen : ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ทฐ๋“ค์ด ๊ณ„์ธต์—์„œ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋ฆฌ ๋ฐฐ๊ฒฝ์ƒ‰์˜ ํˆฌ๋ช…๋„๋ฅผ ์กฐ์ ˆํ•ด๋„ ๋ทฐ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด, ์–˜๋กœ ์Šคํƒ€์ผ ์„ค์ •์„ ํ•˜๋ฉด ์ƒˆ๋กœ์šด ํ™”๋ฉด์„ ๊น”์•„์ค€๋‹ค.

overFullScreen: ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ทฐ๋“ค์ด ๊ณ„์ธต์— ๋‚จ์•„์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ๊ฒฝ์ƒ‰์˜ ํˆฌ๋ช…๋„๋ฅผ ์กฐ์ ˆํ•ด์ฃผ๋ฉด ์ด์ „ ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค.