๐งedwith์์ ์์ ์ ๋ดค์๋ ์คํ ํฌ๋ CS193P ๋ฒ์ญ ๊ฐ์๋ฅผ ๋ค์๋ณด๋ ์ค UIView์ ๋ํด ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ๋ง ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ดค์ต๋๋ค.
UIKit ํ๋ ์์ํฌ์ ํตํ์ฌ, ์คํฌ๋ฆฐ์ ์ง์ฌ๊ฐํ ํํ์ ์ค๋ธ์ ํธ์ ๋๋ค.
init(frame: CGRect) // ์ฝ๋๋ก UIView ์์ฑ์
init(coder: NSCoder) // ์คํ ๋ฆฌ๋ณด๋์์ UIView ์์ฑ์
func setup() { ... }
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
๋ง์ฝ UIView๋ฅผ ์ด๊ธฐํํ ํ์๊ฐ ์์ ๊ฒฝ์ฐ, ์ฝ๋๋ฅผ ํตํ init๊ณผ ์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ํ init ๋๊ฐ๋ฅผ ์์ฑํด์ฃผ์ ์ผ ํฉ๋๋ค.
bound: UIView์ ํฌ๊ธฐ!
frame: UIView์ super view ์ ๋ฐ๋ฅธ ๋ฒ์
UIView๋ฅผ ํ์ ์์ผฐ์ ๊ฒฝ์ฐ bound๋ ๊ทธ๋๋ก์ง๋ง, frame์ ๋ณํ๋ ๊ฑธ ํตํด ๋์ ์ฐจ์ด๋ฅผ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
UIView๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ์์ด์๋ bound๋ฅผ ์ฌ์ฉํ๋๊ฒ ๋ง์ต๋๋ค!
์ด ๊ธ์ ์ฌ๊ธฐ๊น์ง๊ณ ๋ค์์, Custom view์๋ํด์๋ ๊ฐ๋ตํ ์ ๋ฆฌํด๋ด์ผ๊ฒ ์ต๋๋ค.
๐ง(์๋ ์ฐธ๊ณ ๋ด์ฉ์ ํตํด ๋ ์์ธํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค!)
edwith: ์คํ ํฌ๋ CS193P, Chapter5