Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

lgvv98

[iOS] SnapKit SafeArea ๊ณ ๋ คํ•˜๊ธฐ ๋ณธ๋ฌธ

iOSํ”„๋กœ์ ํŠธ/๐Ÿชท ๋‘๊ตฟํ•ด์ปคํ†ค(HappyHouse)

[iOS] SnapKit SafeArea ๊ณ ๋ คํ•˜๊ธฐ

๐Ÿฅ• ์บ๋Ÿฟ๋งจ 2021. 8. 26. 02:53

SnapKit SafeArea ๊ณ ๋ คํ•˜๊ธฐ

 

โœ… ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” SanpKit์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ SafeArea๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ์˜ˆ์ •์ด์•ผ.

 

- (์—…๋ฐ์ดํŠธ) 2022.01.21 : ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ๋ณด๋‹ˆ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ๋ฐœ๊ฒฌํ•จ.

- (์—…๋ฐ์ดํŠธ) 2022.05.08: SnapKit ์ •๋ฆฌ ๊ธ€ ํฌ์ŠคํŒ… ์ถ”๊ฐ€

- ์•„๋ž˜ ํฌ์ŠคํŒ…์—์„œ ์Šค๋ƒ…ํ‚ท์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ์‚ฌํ•ญ์„ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด๊ฐ€ ๋ณด์•„๋„ ๊ธ€์ด ๋” ์ข‹์•„์š”.

2021.08.25 - [iOS/SnapKit] - iOS Snapkit ๋‚˜๋งŒ์˜ ์ •๋ฆฌ ๋ชจ์Œ

 

iOS Snapkit ๋‚˜๋งŒ์˜ ์ •๋ฆฌ ๋ชจ์Œ

โœ… ์ด ํฌ์ŠคํŒ…์€ snapkit์— ๋Œ€ํ•ด์„œ ์–ด๋Š์ •๋„ ๊ณต๋ถ€๋ฅผ ๋งˆ์น˜๊ณ  ๋‚œ ํ›„ ๊ตฌ๊ธ€๋ง๊ณผ ๊นƒํ—ˆ๋ธŒ๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์€ ์ž๋ฃŒ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ชจ์•„์„œ ์ •๋ฆฌํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. โญ๏ธ ์ด ๊ธ€์€

rldd.tistory.com

 

 

 

์šฐ์„  ์ด๊ฑธ ์™œ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋Š๋ƒ? 

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ, ์•„์ดํฐ์—์„œ ๊ธฐ๊ธฐ์— ๋”ฐ๋ผ ๋…ธ์น˜๊ฐ€ ์žˆ๋Š” ๊ธฐ๊ธฐ๋„ ์žˆ๊ณ  ์—†๋Š” ๊ธฐ๊ธฐ๋„ ์žˆ์–ด.

๊ทธ๋ž˜์„œ snapkit์„ ์ด์šฉํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ์ฃผ์—ˆ๋”๋‹ˆ, ๋‚˜์ค‘์— ํ™•์ธํ•ด ๋ณด๋‹ˆ๊นŒ, ๊ธฐ๊ธฐ์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๊ณ .

๊ทธ๋Ÿฐ๋ฐ ๋‚˜๋Š”, ์•„์ดํฐ 12 pro Max๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์ „๋ถ€ ๋‹ค ์žก์•„๋‘” ๋’ค, ๊ธฐ๊ธฐ๋Œ€์‘์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์—์„œ ์•„์ดํฐ se2๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋Œ๋ ค๋ณด๋‹ˆ๊นŒ,, ๊ทธ์ œ์„œ์•ผ ๋”ฑ ์›ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ ๊ฒฐ๊ณผ๋ฌผ์ด ์•„๋‹ˆ์˜€๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•œ๊ฑฐ์•ผ ใ… ใ… 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์ข‹์„๊นŒ?

๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋ฐ”๋กœ

1๏ธโƒฃ SafeArea๋ฅผ ์ •์˜ํ•˜๋Š” ๋ทฐ ๋งŒ๋“ค๊ธฐ

2๏ธโƒฃ view.addSubview(SafeArea)๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ

3๏ธโƒฃ SnapKit์˜ ์ œ์•ฝ์กฐ๊ฑด์„ SafeArea๋กœ ๊ฑธ๊ธฐ

์ด ํ๋ฆ„๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

4๏ธโƒฃ 2022.01.21 (์—…๋ฐ์ดํŠธ) : ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ๋ณด๋‹ˆ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ๋ฐœ๊ฒฌํ•จ.

 

๊ทธ๋ ‡๋‹ค๋ฉด SareArea๋Š” ์–ด๋–ป๊ฒŒ ์ •์˜ํ•ด์ค„๊นŒ?

import UIKit
import SnapKit

class MyMainView: UIViewController {   
   
   let safetyArea: UIView = {
        let v = UIView()
        v.backgroundColor = .black
        return v
    }()
    
    lazy var myCenterButton: UIButton = {
        let btn = UIButton()
        btn.setTitle("My Button(C) ", for: .normal)
        btn.backgroundColor = UIColor.red
        return btn
    }()
   
   override func viewDidLoad() {
        super.viewDidLoad()
        
        setBaseView()
        setView()
   }  
   
   
   func setBaseView(){
        safetyArea.translatesAutoresizingMaskIntoConstraints = false // ์ฝ”๋“œ๋กœ ์ œ์•ฝ์กฐ๊ฑด์„ ์ฃผ๊ธฐ์œ„ํ•ด์„œ ๊ผญ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ์ฝ”๋“œ
        view.addSubview(safetyArea)
        if #available(iOS 11, *) {
            let guide = view.safeAreaLayoutGuide
            safetyArea.topAnchor.constraint(equalTo: guide.topAnchor).isActive = true
            safetyArea.bottomAnchor.constraint(equalTo: guide.bottomAnchor).isActive = true
            safetyArea.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
            safetyArea.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
            
        } else {
            safetyArea.topAnchor.constraint(equalTo: topLayoutGuide.topAnchor).isActive = true
            safetyArea.bottomAnchor.constraint(equalTo: bottomLayoutGuide.bottomAnchor).isActive = true
            safetyArea.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
            safetyArea.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        }
    }
    
     func setView() {
        safetyArea.addSubview(myCenterButton)
        
        myCenterButton.snp.makeConstraints { (make) in
            make.center.equalTo(safetyArea)
        }
     }
 }

 

 

โœ… 2022.01.21 (์—…๋ฐ์ดํŠธ) : ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ๋ณด๋‹ˆ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ๋ฐœ๊ฒฌํ•จ.

        view.snp.makeConstraints {
            $0.top.equalTo(view.safeAreaLayoutGuide)
        }

์• ์ดˆ์— ์Šค์œ„ํ”„ํŠธ ๊ธฐ๋ณธ ์–ธ์–ด์—์„œ safeAreaLayoutGuide๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค. 

์ด์ œ๋Š” ์ด๋ ‡๊ฒŒ ์“ฐ์ž!

 

 

 

(์ฐธ๊ณ )

https://no-b-rain.tistory.com/4

 

[iOS] - SnapKit : Layout ์ •๋ฆฌ

โ— Subject : Auto Layout apply using the Snapkit library To do SnapKit์„ ์‚ฌ์šฉํ•˜์—ฌ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํ™”๋ฉด ๋ฐฐ์น˜๋ฅผ ํ•ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Safe Area ์˜์—ญ ๊ตฌ์„ฑ SnapKit ํ™”๋ฉด ๊ตฌ์„ฑ ํŒ SnapKit - ๊ธฐ๋ณธ ๊ตฌ์„ฑ import UIKit imp..

no-b-rain.tistory.com

 

https://zeddios.tistory.com/474

 

iOS ) translatesAutoresizingMaskIntoConstraints

์•ˆ๋…•ํ•˜์„ธ์š” :) Zedd์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€...! translatesAutoresizingMaskIntoConstraints..!์„ ์ •ํ™•ํžˆ ์•Œ์•„๋ณด๋Š” ๊ณต๋ถ€~.~ translatesAutoresizingMaskIntoConstraints ์‚ฌ์‹ค ์—„์ฒญ ๋งŽ์ด ๋ณด์…จ์„ ์ฝ”๋“œ์—์š”. self.view.trans..

zeddios.tistory.com

 

Comments