๐Ÿง  Why?

iOS์—์„œ View๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด์„  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ํ•„์š”ํ•˜๋‹ค.


  1. View์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์•Œ๊ธฐ์œ„ํ•œ x,y ์ขŒํ‘œ

(์ด ์ขŒํ‘œ๋Š” iOS ๋ทฐ ๊ธฐ์ค€์ ์ธ **์™ผ์ชฝ ๊ผญ๋Œ€๊ธฐ (0,0)**์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘)

  1. ์‹œ์ž‘์ง€์ ๋ถ€ํ„ฐ ์–ด๋Š ํฌ๊ธฐ๋งŒํผ ๊ทธ๋ฆด ๊ฑด์ง€์— ๋Œ€ํ•œ width, height


CGPoint

A structure that contains a point in a two-dimensional coordinate system


  • 2์ฐจ์› ์ขŒํ‘œ๊ณ„์˜ ์ ์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ์ฒด

public struct CGPoint {

    public var x: CGFloat

    public var y: CGFloat

    public init()

    public init(x: CGFloat, y: CGFloat)
}

๋‹ค์Œ๊ณผ ๊ฐ™์ด CGFloat ํƒ€์ž…์˜ x, y ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค.

โœจ ๋”ฐ๋ผ์„œ View์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ CGPoint๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ผญ View์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋งŒ ์“ฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ x, y ๋ฅผ ๋‚˜ํƒ€๋‚ด์•ผ ํ•  ๋•Œ ์–ธ์ œ๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.



let pos: CGPoint = .init(x: 100, y: 200)


// ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์˜ˆ
let scene = GameScene(size: view.frame.size)

scene.anchorPoint = CGPoint(x: 0, y: 1)
// ์›์ ์„ ์™ผ์ชฝ ์ƒ๋‹จ์œผ๋กœ ์„ค์ •


CGSize

A structure that contains width and height values


  • ๋„ˆ๋น„์™€ ๋†’์ด ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ์ฒด
  • ์‚ฌ๊ฐํ˜•์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹˜

public struct CGSize {
    
    public var width: CGFloat

    public var height: CGFloat

    public init()

    public init(width: CGFloat, height: CGFloat)
}

๋‹ค์Œ๊ณผ ๊ฐ™์ด CGFloat ํƒ€์ž…์˜ width, height ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค.

View์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ CGSize๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


let size: CGSize = .init(width: 150, height: 200)


CGRect

A structure that contains the location and dimensions of a rectangle


  • ์‚ฌ๊ฐํ˜•์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ์ฒด
  • ์‹ค์ œ UIView๋ฅผ ๊ตฌํ˜„ํ•  ๋• frame์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ CGRect๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
let myView: UIView = .init(frame: CGRect)

public struct CGRect {

    public var origin: CGPoint

    public var size: CGSize

    public init()

    public init(origin: CGpoint, size: CGSize)
}

์œ„ ์ฝ”๋“œ์—์„œ ๋ณด์ด๋“ฏ CGRect๋Š” CGPoint ํƒ€์ž…์˜ origin๊ณผ CGSize ํƒ€์ž…์˜ size๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.
์ฆ‰, View๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ origin์€ x,y ์ขŒํ‘œ๋ฅผ size๋Š” width, height๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.



์‹ค์ œ View์˜ frame์— ์ ‘๊ทผํ•˜๋Š” ๋ฒ•

let rect: CGRect = .init(origin: CGPoint(x: 100, y: 200), size: CGSize(width: 150, height: 200))


๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„

let rect: CGRect = .init(x: 100, y: 200, width: 150, height: 200)


์‹ค์ œ View ์ •์˜

let rect: CGRect = .init(x: 100, y: 200, width: 150, height: 200)
let myView: UIView = .init(frame: rect)

myView.backgroundColor = .blue
self.view.addSubview(myView)