ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS] 2์ฃผ ์ฐจ ๋ฏธ์…˜ - Auto layout์„ ํ™œ์šฉํ•ด์„œ ํด๋ก  ์ฝ”๋”ฉ์„ ํ•ด๋ณด์ž!
    iOS/UMC 2022. 10. 1. 04:22

     

    2์ฃผ ์ฐจ ๋ฏธ์…˜

    ๐Ÿ’ก ์‹ค์ œ ์•ฑ์„ ํ•˜๋‚˜ ์ •ํ•ด์„œ, ํŠน์ • ํ™”๋ฉด ๊ตฌ์„ฑํ•ด๋ณด๊ธฐ

    ๐Ÿ’ก ๋ฒ„ํŠผ ํ„ฐ์น˜๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ํ™”๋ฉด (๋‹ค๋ฅธ ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ViewController)์œผ๋กœ ํ™”๋ฉด ์ „ํ™˜ํ•˜๊ธฐ(Present, Navigation)

    โœ… ๋‹ค์–‘ํ•œ Auto Layout์„ ํ™œ์šฉํ•ด๋ณด๊ธฐ
    โœ… Safe Area ์ง€ํ‚ค๊ธฐ
    โœ… ๋ชจ๋“  ๋””๋ฐ”์ด์Šค ํฌ๊ธฐ์— ๋Œ€์‘ํ•˜๊ธฐ

     

     

    1. ์Šคํƒ ๋‹ค๋“œ ๋ฏธ์…˜

    ๋‚ด๊ฐ€ ์ •ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ 

    '๋Ÿฐ๋ฐ์ด': ๋Ÿฐ๋‹์ด๋‚˜ ๊ฑท๊ธฐ ์šด๋™์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์–ดํ”Œ์ด๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹ค์Šตํ•ด๋ณด๊ธฐ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ์„ ํƒํ–ˆ๋‹ค.

    ๋Ÿฐ๋ฐ์ด ๋ฉ”์ธํŽ˜์ด์ง€ ํ™”๋ฉด

     


     

     

    ๊ฒฐ๊ณผ๋ฌผ

    ๋””๋ฐ”์ด์Šค ํฌ๊ธฐ์— ๋งž๋„๋ก auto layout์„ ์„ค์ •ํ•ด์„œ ๋ฉ”์ธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ดค๋‹ค

     

     

     


    โœ… ์Šคํฌ๋กค ๋˜๋Š” ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ

    ์‹ค์ œ๋กœ horizontal scroll ๋ฒ„ํŠผ์„ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์„œ ๊ตฌ๋™๋˜๋Š”์ง€๋Š” ๋ชจ๋ฅด์ง€๋งŒ, ์Šคํฌ๋กค์ด ๋˜๋Š” ํ™”๋ฉด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ๋‹ค.

     

    ์Šคํฌ๋กค๋˜๋Š” ํƒญ๋ฒ„ํŠผ

     

     

    1๏ธโƒฃ ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ScrollView๋ฅผ ๋งŒ๋“  ๋’ค, View์— ์ž์‹ ์š”์†Œ๋“ค์„ ๋„ฃ์–ด์„œ ScrollView์— ๋„ฃ์–ด์ค€๋‹ค.

    ์ดˆ๋ก์ƒ‰ ๋ฐฐ๊ฒฝ ๋ถ€๋ถ„์ด Scroll View์ด๊ณ , ๋ฒ„ํŠผ๋“ค์ด ๋“ค์–ด๊ฐ€์žˆ๋Š” View๊ฐ€ ๋˜ Scroll View ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ƒํƒœ์ด๋‹ค

     


    2๏ธโƒฃ View์— constraints ์†์„ฑ์„ ๋ถ€์—ฌํ•œ๋‹ค.

     


    3๏ธโƒฃ Ctrl ๋ˆ„๋ฅธ ์ƒํƒœ์—์„œ View ํด๋ฆญ -> Scroll View์˜ Content Layout Guide์— ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋ž

    ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ˆ˜ํ‰ ์Šคํฌ๋กค์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Equal Heights๋กœ ์„ค์ •ํ•ด์ค€๋‹ค(์„ธ๋กœํญ์€ ๊ณ ์ •, ๊ฐ€๋กœ๋งŒ ์Šคํฌ๋กค ๋˜๋„๋ก ํ•จ)

     


    4๏ธโƒฃ ์Šคํฌ๋กค ํ•˜๊ณ ์‹ถ์€ ๋งŒํผ View์˜ width๋ฅผ ๋Š˜๋ ค์ฃผ๊ณ , ๋นจ๊ฐ„ ์„ ์€ ์ œ๊ฑฐํ•ด์ค€๋‹ค.


    ๐Ÿ”— ์ฐธ๊ณ 1

    ๐Ÿ”— ์ฐธ๊ณ 2


    2. ์ฑŒ๋ฆฐ์ง€ ๋ฏธ์…˜

    ํ™”๋ฉด ์ „ํ™˜: ํ”„๋กœํ•„ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋งˆ์ดํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด๋ณด์ž!

     

    1๏ธโƒฃ ์Šคํ† ๋ฆฌ๋ณด๋“œ ์ƒ์„ฑํ•˜๊ธฐ

    mainViewController์— ํ”„๋กœํ•„ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ™”๋ฉด ์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค

     


    2๏ธโƒฃ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ƒ์„ฑํ•˜๊ธฐ

    cocoa touch class๋กœ ProfileViewController๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•ด์ค€๋‹ค.

     

    ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ View Controller๋ฅผ ์ƒ์„ฑํ•œ ๋’ค Class๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.

    Storyboard ID๋Š” 'ProfileVC'๋กœ ์ž‘์„ฑํ•ด์ค€๋‹ค.

     

            
        // 2. ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ƒ์„ฑ
            let profileViewController = storyboard.instantiateViewController(withIdentifier: "profileVC") as! ProfileViewController

    MainViewController์—์„œ ์ฝ”๋“œ๋Š” ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค

     

     

     

    3๏ธโƒฃ ํ™”๋ฉด ์ „ํ™˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํ™”๋ฉด ์ „ํ™˜ํ•˜๊ธฐ

        // 3. ํ™”๋ฉด ์ „ํ™˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํ™”๋ฉด ์ „ํ™˜
            self.present(profileViewController, animated: true, completion: nil)
        }

     

    ์—ฌ๊ธฐ๊นŒ์ง€ ๊ตฌํ˜„์— ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ

     

    ๊ทธ๋Ÿฐ๋ฐ... ์ƒˆ๋กœ์šด ํƒญํ™”๋ฉด์œผ๋กœ ๋–ด์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ???

    ์กฐ๊ธˆ ๋” ์ง„ํ–‰ํ•ด๋ณด์ž

     

     


    1๏ธโƒฃ ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

     

    2๏ธโƒฃ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์ค€๋‹ค

        // 3. ํ™”๋ฉด ์ „ํ™˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํ™”๋ฉด ์ „ํ™˜
           // self.present(profileViewController, animated: true, completion: nil)
            
            self.navigationController?.pushViewController(profileViewController, animated: true)

     

     

     


    ์ตœ์ข… ๊ฒฐ๊ณผ

     

Designed by Tistory.