[iOS/Swift] ๋ทฐ ์ขŒํ‘œ๊ณ„์™€ UIView.Frame

2024. 8. 26. 23:05ยทlearnings/Swift

๋ทฐ ์ขŒํ‘œ๊ณ„

UIView์˜ ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์ขŒํ‘œ๊ณ„์— ๋Œ€ํ•ด ์ง์ ‘์ ์ธ ์–ธ๊ธ‰์€ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์งค๋ง‰ํ•˜๊ฒŒ View Programming Guide for iOS ๋ผ๋Š” ๋งํฌ๋กœ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ๊ณ , View and Window Architecture - View Geometry and Coordinate Systems์—์„œ ๋ทฐ ์ขŒํ‘œ๊ณ„์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒˆ์—ญํ•˜๋ฉด ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ์™€ ์ขŒํ‘œ๊ณ„ ์ •๋„๊ฐ€ ๋˜๊ฒ ๋„ค์š”.

๋ทฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ขŒ์ƒ๋‹จ์ด (0,0)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋ฅผ origin point๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์ด x์ถ•์ด๋ฉฐ ์ˆ˜์ง ๋ฐฉํ–ฅ์ด y์ถ• ์ด๊ณ , ์ขŒํ‘œ๊ณ„์˜ ๊ฐ’์€ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ทฐ์™€ ํ™”๋ฉด์€ ์ž์‹ ๋งŒ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋–ค ์‹์œผ๋กœ๋“  ์ขŒํ‘œ๊ณ„๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ํ–ฅ์— ๋Œ€ํ•ด ์ธ์ง€ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜๋„ค์š”.๋ทฐ๋ฅผ ๊ทธ๋ฆฌ๊ฑฐ๋‚˜, ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด๋‹น ๋ทฐ์— ์—ฐ๊ด€๋œ ๋ชจ๋“  ์ขŒํ‘œ๊ณ„๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ๋ทฐ๋ฅผ ๊ทธ๋ฆด๋•Œ (์ด ๋ง์€ ๋ทฐ์˜ ์œ„์น˜๋ฅผ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ์˜ ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ชจ๋“  ํ–‰์œ„๋ฅผ ๋งํ•˜๋Š” ๋“ฏ ํ•ด์š”) ๋ถ€๋ชจ ๋ทฐ์™€์˜ ๊ด€๊ณ„๋ฅผ ์ž˜ ์•Œ์•„์•ผ ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด, ์ด์™€ ์—ฐ๊ด€๋œ ๋ชจ๋“  ์ขŒํ‘œ๊ณ„๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํ•œ ๋ง์ธ๋“ฏ ์‹ถ๊ธฐ๋Š” ํ•ฉ๋‹ˆ๋‹ค๋งŒ,, UIWindow ์™€ UIView ๋Š” ๊ทธ๋Ÿฌํ•œ ๊ด€๊ณ„, ์ž์‹ ๋ทฐ ์ขŒํ‘œ๊ณ„์—์„œ์˜ ์ขŒํ‘œ๊ธฐ ๋ถ€๋ชจ ๋ทฐ ์ขŒํ‘œ๊ณ„์—์„œ์˜ ์ƒ๋Œ€์  ์œ„์น˜๋“ฑ์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ์— ๋„์›€์„ ์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

UIView.Frame

๋ทฐ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ž์‹ ์˜ frame, bounds, center ์†์„ฑ์œผ๋กœ ์ž์‹ ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ์ถ”์ ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฒˆ์— ์•Œ์•„๋ณผ๊ฒƒ์€ ๊ทธ์ค‘์—์„œ๋„ frame ์ธ๋ฐ์š”! ๊ณต์‹๋ฌธ์„œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

The frame property contains the frame rectangle, which specifies the size and location of the view in its superview’s coordinate system.
frame์€ ๋ถ€๋ชจ๋ทฐ์˜ ์ขŒํ‘œ๊ณ„ ์•ˆ์—์„œ์˜ ์ž์‹ ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ํŠน์ •ํ•˜๋Š” ์‚ฌ๊ฐํ˜• ํ”„๋ ˆ์ž„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„์—์„œ frame์„ ์กฐ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๋ฅผ ์กฐ์ž‘ํ•œ๋‹ค๋Š” ๋œป์ด๋ฉฐ, ๋ทฐ์˜ ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ์ง“๊ฑฐ๋‚˜, ๋ทฐ์˜ ํฌ๊ธฐ ๋˜๋Š” ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค๋Š” ๋œป์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

frame ์‚ฌ์ง„์„ ๋ณด๋ฉด, origin point๊ฐ€ (40,40) ์œผ๋กœ ๋ถ€๋ชจ ๋ทฐ์˜ ์ขŒํ‘œ๊ณ„ ์† ์œ„์น˜์ธ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. center ์†์„ฑ์˜ ๊ฐ’ ๋˜ํ•œ (160, 230) ์œผ๋กœ 40 + 120 {240/2} ์œผ๋กœ ๋ถ€๋ชจ ์ขŒํ‘œ๊ณ„์— ๊ธฐ์ค€์„ ๋‘๊ณ  ์žˆ๋„ค์š”.

๋ทฐ ์ขŒํ‘œ๊ณ„์™€ Frame ์‹ค์Šต

์žฌ๋ฏธ์žˆ๋Š” ์‹ค์Šต์‹œ๊ฐ„! ์˜ค๋Š˜์€ ๋ทฐ์˜ ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ 3๋‹จ์œผ๋กœ ๋งŒ๋“ค๊ณ , ๋ทฐ ์œ„์น˜๋ฅผ ์กฐ์ž‘ํ•˜๋ฉฐ origin point ์™€ center ์†์„ฑ์˜ ๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋˜๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ขŒ - ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ / ์šฐ - xcode์˜ ๋ทฐ ๋””๋ฒ„๊ฑฐ

๋‚˜์ค‘์— ๋ทฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋‹จ ๋ฐ”ํƒ•์„ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ทฐ ๊ณ„์ธต๊ตฌ์กฐ๊ฐ€ UIWindowScene - UIWindow - VC - Root View ์ธ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์— ๊ทธ๋ƒฅ UIView๋ฅผ ์ƒ์„ฑํ•˜๊ณ  addSubView ๋กœ ๋ถ™์—ฌ๋ณผ๊ฒŒ์š”.

class ExViewController: UIViewController {
    
    lazy var view0 = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = .blue
        self.view.addSubview(view0)
        // Do any additional setup after loading the view.
    }

์–ด๋ผ.. ๋ทฐ์˜ ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ๋Š” ์ถ”๊ฐ€ํ•œ ๋ทฐ๊ฐ€ ๋ณด์ด๋Š”๋ฐ, ํ™”๋ฉด์—์„œ๋Š” ๋ทฐ๊ฐ€ ์•ˆ๋ณด์ž…๋‹ˆ๋‹ค. ์–ด์ฐŒ ๋œ ์ผ์ผ๊นŒ์š”? ๋ฐ”๋กœ ๋ทฐ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด์ง€์š”. UIView๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์•„๋ฌด ํฌ๊ธฐ๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉด, ํฌ๊ธฐ๊ฐ€ 0์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด iOS์˜ ์ขŒํ‘œ๊ณ„์—์„œ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ํƒ€์ž…์€ ๋ฌด์—‡์ผ๊นŒ์š”?

๋ฐ”๋กœ CGRect ์ž…๋‹ˆ๋‹ค.
CGRect ์ž์ฒด๋Š” ์ขŒํ‘œ๊ณ„์˜ ์ถ”์ƒ์ ์ธ ํ–‰๋™์„ ์‹ค์ œ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธธ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์ž…์ด๊ธฐ์— ์ง€๊ธˆ์€ ์ž์„ธํ•œ ์„ค๋ช…์„ ํ•˜์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค๋งŒ, UIView.frame ์—์„œ frame์€ CGRect์ด๊ณ , CGRect๊ฐ€ origin, x, y, width, height, center ๋“ฑ์˜ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ฆ‰, UIView.frame์˜ ํ•ด๋‹น ์†์„ฑ๋“ค์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ํ–‰์œ„ ์ค‘ ํ•˜๋‚˜์ธ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

?? ๊ทผ๋ฐ ์™œ get-only ํ”„๋กœํผํ‹ฐ์ž„??

์• ํ”Œ UIView ๊ณต์‹ ๋ฌธ์„œ์—๋„ view์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง์ ‘ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•˜๊ณ  ์žˆ์ง€ ์•Š๋Š”๋ฐ์š”, ์•„๋งˆ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ ์–ด๋‘์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์กฐ์ž‘ํ•˜๋А๋ƒ? ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งค๋ฒˆ ์˜คํ† ๋ ˆ์ด์•„์›ƒ ๊ฐ™์€๊ฑธ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋А๋ƒ?
๊ทธ๊ฒŒ ์ •์„์ด๊ฒ ์Šต๋‹ˆ๋‹ค๋งŒ, frame.size ๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

self.view0.backgroundColor = .brown
self.view0.frame.size.width = 100
self.view0.frame.size.height = 100

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„  ๋ผ์šด๋”ฉ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ์งค๋ ธ๋Š”๋ฐ, ์ •ํ™•ํžˆ (0,0)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๊ฐ€๋กœ์„ธ๋กœ 100๋งŒํผ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š” View๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž, ์ด์ œ ์ด ๋ทฐ์˜ ์›์ ๊ณผ ๊ฐ€๋กœ์„ธ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ๋ณ€๊ฒฝ ์ „๊ณผ ํ›„์˜ ๊ฐ’์„ ํ™•์ธํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

self.view.addSubview(view0)
self.view0.backgroundColor = .brown
self.view0.frame.size.width = 100
self.view0.frame.size.height = 100
print("view0.center", view0.frame.origin)
print("view0.center", view0.center)
self.view0.frame.origin.x = 100
self.view0.frame.origin.y = 100
print("view0.center", view0.frame.origin)
print("view0.center", view0.center)

์ •์งํ•˜๊ฒŒ ๋”ฑ 100๋งŒํผ๋งŒ ๋Š˜์–ด๋‚œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž, ์ด์ œ ์ƒˆ๋กœ์šด ๋ทฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด ๋ทฐ์˜ origin์„ ํ•œ๋ฒˆ ํ™•์ธํ•ด๋ณด์ฃ .

self.view0.addSubview(view1)
self.view1.backgroundColor = .purple
self.view1.frame.size.width = 100
self.view1.frame.size.height = 100
print("view1.center", view1.frame.origin)
print("view1.center", view1.center)

view1์˜ origin point ๊ฐ€ (0,0) ์ž…๋‹ˆ๋‹ค!

๊ณต์‹ ๋ฌธ์„œ๋Œ€๋กœ ๊ฐ ๋ทฐ๋Š” ๋ถ€๋ชจ ๋ทฐ์˜ ์ขŒํ‘œ๊ณ„๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ ์ˆœ๊ฐ„์ž…๋‹ˆ๋‹ค. center ๋„ ์ •์งํ•˜๊ฒŒ (50,50)์ด๋„ค์š”. ์ด์ œ ์œ„์น˜๋ฅผ ์กฐ๊ธˆ ์˜ฎ๊ธฐ๋ฉด..?

self.view1.frame.origin.x = 100
self.view1.frame.origin.y = 100
print("view1.center", view1.frame.origin)
print("view1.center", view1.center)

๊ณต์‹ ๋ฌธ์„œ๋Œ€๋กœ ๊ฐ ๋ทฐ๋Š” ๋ถ€๋ชจ ๋ทฐ์˜ ์ขŒํ‘œ๊ณ„๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ ์ˆœ๊ฐ„์ž…๋‹ˆ๋‹ค. center ๋„ ์ •์งํ•˜๊ฒŒ (50,50)์ด๋„ค์š”. ์ด์ œ ์œ„์น˜๋ฅผ ์กฐ๊ธˆ ์˜ฎ๊ธฐ๋ฉด..?

self.view1.frame.origin.x = 100
self.view1.frame.origin.y = 100
print("view1.center", view1.frame.origin)
print("view1.center", view1.center)

๋ชจ๋“ ๊ฒƒ์ด ๊ณต์‹๋ฌธ์„œ๋Œ€๋กœ ์ •์งํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

iOS ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ผญ ์•Œ์•„์•ผ ํ•  ์ขŒํ‘œ๊ณ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ด ์™ธ์—๋„ transform์ด๋ผ๋˜๊ฐ€, bounds๋ผ๋˜๊ฐ€.. ๋จธ๋ฆฌ์•„ํ”ˆ๊ฒƒ๋“ค์ด ๋งŽ์ด ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋˜ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋ตˆ์š”!

์ฐธ๊ณ ์ž๋ฃŒ

CGRect | Apple Developer Documentation

 

CGRect | Apple Developer Documentation

A structure that contains the location and dimensions of a rectangle.

developer.apple.com

 

 

About Windows and Views

About Windows and Views In iOS, you use windows and views to present your application’s content on the screen. Windows do not have any visible content themselves but provide a basic container for your application’s views. Views define a portion of a wi

developer.apple.com

 

 

UIView | Apple Developer Documentation

An object that manages the content for a rectangular area on the screen.

developer.apple.com

'learnings > Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS/Swift] Say Hello to Swift 6.2, WWDC25  (0) 2025.06.24
[iOS/Swift] URLProtocol์„ ์‚ฌ์šฉํ•ด ๋„คํŠธ์›Œํ‚น์„ ํ…Œ์ŠคํŠธํ•ด๋ณด์ž  (2) 2024.10.16
[iOS/Swift] ์†Œ๋ฉธ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ  (0) 2024.03.26
[iOS/Swift] ์ธ์Šคํ„ด์Šค์˜ ์ˆœํ™˜ ์ฐธ์กฐ์— ์˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜  (0) 2024.03.21
[iOS/Swift] TableView์—์„œ SnapScroll (magnetic scroll) ๊ตฌํ˜„  (0) 2023.01.20
'learnings/Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [iOS/Swift] Say Hello to Swift 6.2, WWDC25
  • [iOS/Swift] URLProtocol์„ ์‚ฌ์šฉํ•ด ๋„คํŠธ์›Œํ‚น์„ ํ…Œ์ŠคํŠธํ•ด๋ณด์ž
  • [iOS/Swift] ์†Œ๋ฉธ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ
  • [iOS/Swift] ์ธ์Šคํ„ด์Šค์˜ ์ˆœํ™˜ ์ฐธ์กฐ์— ์˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜
Une.
Une.
์ด์ง„์„ธ์ƒ์† ์ž์œ ๋ฅผ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด ๋‚จ๊ธด ๊ธฐ๋ก
  • Une.
    Une's Dev-log๐Ÿ
    Une.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • \ (36)
      • log (4)
      • mac (2)
      • learnings (29)
        • ํšŒ๊ณ  (0)
        • Swift (11)
        • PS (10)
        • Algorithm&DS (6)
        • c++ (2)
      • CS (1)
        • ๋„คํŠธ์›Œํฌ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋ฐฉ๋ช…๋ก
    • ๊ด€๋ฆฌ์ž
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    swift 6.2
    ํ™˜ํ˜•๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ
    ๋งฅ
    PS
    ๊ฐ•ํ•œ์ฐธ์กฐ
    ๋ฐฑ์ค€
    swift
    ์ž๋ฃŒ๊ตฌ์กฐ
    ios
    DFS
    ์ฐจ๋Ÿ‰๊ธฐ์ง€์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์Šคํƒ
    BFS
    wwdc25
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๊ทธ๋ฆฌ๋””
    C++
    ๋”๋ธ”๋ฆฌ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ
    ์ฝ”๋“œ์—…
    ํ† ์ดํ”„๋กœ์ ํŠธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Une.
[iOS/Swift] ๋ทฐ ์ขŒํ‘œ๊ณ„์™€ UIView.Frame
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”