Skip to content

Latest commit

ย 

History

History
82 lines (44 loc) ยท 3.28 KB

frame,bounds.md

File metadata and controls

82 lines (44 loc) ยท 3.28 KB

Bounds์™€ Frame์˜ ์ฐจ์ด์ 

ํ•„์š”ํ•œ ์‚ฌ์ „ ์ง€์‹

CGRect๋Š” "์‚ฌ๊ฐํ˜•"์œผ๋กœ ๊ทธ๋ ค์ง€๋ฉฐ, origin๊ณผ size๋ฅผ ๊ฐ€์ง„๋‹ค. ์ฆ‰, [x์ขŒํ‘œ, y์ขŒํ‘œ, width(๋„ˆ๋น„), height(๋†’์ด)]๋ฅผ ๊ฐ€์ง„๋‹ค.

๋„์›€์„ ์ค€ ์ข‹์€ ๋ธ”๋กœ๊ทธ

Answer

//MARK: -frame
//SupeView(์ƒ์œ„๋ทฐ)์˜ ์ขŒํ‘œ์‹œ์Šคํ…œ ์•ˆ์—์„œ View์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„
open var frame: CGRect

//MARK: -bounds
//View์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ์ž์‹ ๋งŒ์˜ ์ขŒํ‘œ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๋‚˜ํƒ€๋ƒ„
open var bounds: CGRect

frame

SupeView(์ƒ์œ„๋ทฐ)์˜ ์ขŒํ‘œ์‹œ์Šคํ…œ ์•ˆ์—์„œ View์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„

image

log๋ฅผ ๋ณด๋ฉด ํ•˜๋Š˜์ƒ‰ sub view์˜ frame์€ (x:30, y:191) ์ด๊ณ , ๋ณด๋ผ์ƒ‰ sub sub view์˜ frame์€ (x: 70, y: 101)์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ด ์ˆ˜์น˜๋Š” ์•ž์„œ ๋งํ•œ frame์˜ ์ •์˜์ด๊ธฐ๋„ ํ•œ SuperView๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž์‹ ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.

image

  • ํ•˜๋Š˜์ƒ‰์˜ SuperView๋Š” ๋…ธ๋ž€์ƒ‰
    • ๋…ธ๋ž€์ƒ‰์˜ origin์„ ๊ธฐ์ค€์œผ๋กœ ์–ผ๋งˆ๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์— ์œ„์น˜ํ•ด ์žˆ๋Š”์ง€ ํ‘œ์‹œ
  • ๋ณด๋ผ์ƒ‰์˜ SuperView๋Š” ํ•˜๋Š˜์ƒ‰
    • ํ•˜๋Š˜์ƒ‰์˜ origin์„ ๊ธฐ์ค€์œผ๋กœ ์–ผ๋งˆ๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์— ์œ„์น˜ํ•ด ์žˆ๋Š”์ง€ ํ‘œ์‹œ

bounds

View์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ์ž์‹ ๋งŒ์˜ ์ขŒํ‘œ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๋‚˜ํƒ€๋ƒ„

image

์ƒ์œ„๋ทฐ์™€ ์•„๋ฌด๋Ÿฐ ์ƒ๊ด€์ด ์—†์œผ๋ฉฐ, ์˜ค์ง ์ž์‹ ์ด ๊ธฐ์ค€.

Bounds๋Š” ์ž์‹ ๋งŒ์˜ ์ขŒํ‘œ๊ณ„ (0,0)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ (x, y) ๋ฐ ํฌ๊ธฐ (๋„ˆ๋น„, ๋†’์ด)๋กœ ํ‘œํ˜„๋˜๋Š” ์‚ฌ๊ฐํ˜•์ด๋‹ค.
๊ทธ๋ž˜์„œ Bounds์˜ origin์€ default๋กœ (0,0).

๋ฌด์Šจ ์†Œ๋ฆฌ์ธ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด!

image

์™ผ์ชฝ์˜ ํ™”๋ฉด์—์„œ ํ•˜๋Š˜์ƒ‰์˜ bounds๋ฅผ

subView.bounds.origin.x = 50
subView.bounds.origin.y = 60

์ด๋ ‡๊ฒŒ ์ฃผ์—ˆ๋”๋‹ˆ ์šฐ์ธก๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋ถ„๋ช… ํ•˜๋Š˜์ƒ‰์˜ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ๋„ ์šฐ์ธก ์•„๋ž˜๋กœ ์ด๋™์‹œ์ผฐ๋Š”๋ฐ ์™œ ๋ณด๋ผ์ƒ‰์ด, ๊ทธ๊ฒƒ๋„ ์™ผ์ชฝ ์œ„๋กœ ์›€์ง์˜€์„๊นŒ?

Bounds๋Š” ์ƒ์œ„๋ทฐ ์•ˆ์—์„œ์˜ ์ขŒํ‘œ๊ฐ€ ์•„๋‹Œ "์ž์‹ ๋งŒ์˜ ์ขŒํ‘œ์‹œ์Šคํ…œ" ์„ ๊ฐ€์ง„๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ๋”ฐ๋ผ์„œ Bounds๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ํ•ด๋‹น ์œ„์น˜์—์„œ View๋ฅผ ๋‹ค์‹œ๊ทธ๋ฆฌ๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋œ๋‹ค.

Bounds๋Š” ์ƒ์œ„๋ทฐ์™€ ์•„๋ฌด๋Ÿฐ ๊ด€๋ จ์ด ์—†์œผ๋ฏ€๋กœ, subView๋Š” ์›€์ง์ด์ง€ ์•Š๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ๊ทธ ์•ˆ์—์žˆ๋˜ sub-sub-View๊ฐ€ ์›€์ง์ด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒƒ์ด๋‹ค!

Bounds๋Š” ์ข€ ๋” ์ž์„ธํ•œ ์„ค๋ช…์ด ์žˆ์–ด์•ผ ์ดํ•ด๊ฐ€ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธ€์„ ์ฐธ์กฐํ•˜๋ฉด ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

๋ณธ ๊ธ€์˜ ์ถœ์ฒ˜: ZeddiOS-Frame๊ณผ Bounds์˜ ์ฐจ์ด