์๋ ํ์ธ์! ์ธ์์ด ์ฐธ ๋ง์์ฒ๋ผ ์ฝ์ง ์๋ค์..!๐ฑ
๊ทธ๋๋ ๋ง์ ๊ฒ๋ค์ ํ ๊ฒ ๊ฐ์์!
์ฐ์ ์ ๊ฐ ๋ฅ์ณค๋ ์ค๋ฅ๋ค๋ถํฐ ์ ๋ฆฌํด ๋ด ์๋ค.
TableView์ ํจ์๊ฐ ํธ์ถ๋์ง ์๋ ์ค๋ฅ
์ ์ ์ํฉ์ ์ค๋ช ํ์๋ฉด, CalenderVC์์ ๋ ์ง๋ฅผ ์ ํํ๋ฉด TodoListVC์ผ๋ก ํด๋น ๋ ์ง๋ฅผ ๋๊ฒจ์ฃผ๋ฉด์ ํ๋ฉด์ด ์ ํ๋ฉ๋๋ค. ์ด๋ ๋๊ฒจ์ค ๋ ์ง๋ฅผ ๊ฐ์ง๊ณ , ์ฝ์ด๋ฐ์ดํฐ์์ ๋ ์ง์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ๋ค์ TodoListVC์์ TodoTableViewCell๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ์ด์ผ ํด์.
๊ทผ๋ฐ!!!! ์ฌ๊ธฐ์!!!! TableView์ ์๋ฌด๊ฒ๋ ๋จ์ง ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค!
TableViewCell๋ฅผ ๋ถ๋ฌ์ค๋ ํจ์์ธ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{}
๋ ํธ์ถ์ด ๋๋๋ฐ, func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{}
์ ํจ์๋ ํธ์ถ์ด ๋์ง ์๋ ๊ฑฐ์ฃ ! ( ํจ์ ํธ์ถ ๋ถ์ print(#function)์ ์ฌ์ฉํ๋ฉด ํ์ธํ ์ ์์ต๋๋ค! )
์ฒ์์ ๋ฐ์ดํฐ๊ฐ ๋๊ฒจ์ง์ง ์๋ ๊ฑด๊ฐ ํด์ ์ฌ๋ฌ ์ฝ๋๋ค์ ์๋ฆฌ์กฐ๋ฆฌ ๋ง์ ธ๋ณด์์ง๋ง, ๊ฒฐ๋ก ์ TableView ์์ฒด๊ฐ ์ถ๋ ฅ๋์ง ์๋ ๊ฒ์ด์์ด์! ์ฒ์์ TableView์ ๋ฐํ์์ ๊ฒ์์์ผ๋ก ๋๊ณ ์ถ๋ ฅํด ๋ณด์์ง๋ง, ์์ ์ถ๋ ฅ์ด ๋์ง ์๋๋ผ๊ณ ์!
๊ทธ๋์ Hierarchy ๋ฅผ ์ถ๋ ฅํด ๋ณด์๋๋ ์ ๋ง TableView๊ฐ ์ฌ๋ผ์์์ง ์๋๋ผ๊ณ ์!
[ Hierarchy ํ์ธ ๋ฐฉ๋ฒ ]
1. ํ๋ก์ ํธ๋ฅผ Run ํ๋ค!!! โญ๏ธ
2. ํ๋ก์ ํธ์์ Hierarchy๋ฅผ ๋ณด๊ณ ์ถ์ ํ๋ฉด์ ๋์ด๋ค!
3. Xcode์ ์ผ์ชฝ ์๋ ํ๋ฉด์์ ์๋ ๊ทธ๋ฆผ ์ค 6๋ฒ์งธ์ ์ฌ๋ฌ ๋ทฐ๊ฐ ๊ฒน์น ๊ทธ๋ฆผ์ ์ ํํ๋ค.
4. ๋ง์ฐ์ค๋ก ํ๋ฉด์ ํด๋ฆญํ๊ณ ์๋ฆฌ์กฐ๋ฆฌ ๋๋ฌ๋ณด๋ฉฐ ํ์ธํ๋ค.
์?!?!
TableView๊ฐ ํ๋ฉด์ ์ ์ฌ๋ผ์์๊ณ , @IBOutlet๋ ์ ์ฐ๊ฒฐ๋์ด ์๊ณ delegate, dataSouce ์ฌ์ง์ด ํ๋กํ ์ฝ์ ํจ์๊น์ง ์ ๊ตฌํ์ด ๋์ด์๋๋ฐ ์ ํ๋ฉด์ ํ ์ด๋ธ ๋ทฐ๊ฐ ๋จ์ง ์์ง?!
์ ๊ฐ StackView ์์ TableView๋ฅผ ํ์ฑํ๊ธฐ ๋๋ฌธ์ด์ฃ ..ใ
UIStackView๋ ์์ ํฌํจ๋ ๋ทฐ๋ค์ ๋ฐฐ์นํ๊ณ ๊ด๋ฆฌํ๋ ์น๊ตฌ์ ๋๋ค. UIStackView๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ๋ทฐ๋ค์ ํฌ๊ธฐ๋ ์์น๋ฅผ ์๋์ผ๋ก ์กฐ์ ํด์ AutoLayout ์ธก๋ฉด์์๋ ์์ฃผ ํธ์ํ๊ณ ์ข์ ์น๊ตฌ์ด์ฃ . ํ์ง๋ง!!!!!! StackView๋ ๋ด๋ถ์ ํฌ๊ธฐ๋ ์์น๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์คํฌ๋กค์ด ํ์ํ TableView๊ฐ StackView ์์ผ๋ก ๋ค์ด๊ฐ๋ฉด ์คํฌ๋กค์ด ๊ฐ๋ฅํ ์์ญ์ ์ค์ ํ๋๋ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฑฐ์ฃ ..!
ํ๋ง๋๋ก StackView๋ TableView์ ์์น๋ ํฌ๊ธฐ๋ฅผ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ์ง ๋ชปํ์ฌ ํ๋ฉด์ ํ์ํ์ง ๋ชปํ๋ค..!!
๊ทธ๋ฐ๋ฐ๋ StackView์ ๊ผญ TableView๋ฅผ ๋ฃ๊ณ ์ถ๋ค๋ฉด StackView์ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ค์ ํด์ผ ํ๋ค๊ณ ํฉ๋๋ค!
์ ๋ stackView๋ฅผ ์์ ๊ณ ๋ค์ TableView๋ฅผ ๋ง๋ค์๋๋! ์ ์๋ํ์์ด์~!
์ฝ์ง์ ์กฐ๊ธ ํ์ง๋ง.. ๊ทธ๋๋ ์ ์์ ์ผ๋ก ์๋ํ๋.. ๊ด์ฐฎ์ต๋๋ค..ใ
๊ผญ Hiererchy์ ์ถ๋ ฅ์ด ๋๋ ํจ์๋ฅผ ํ์ธํด์ผ ํ๊ณ StackView์๋ ๋ค์ TableView๋ฅผ ๋ฃ์ง ์๊ธฐ๋ก ๋ค์งํ์ต๋๋ค..!!
Button์ด ํด๋ฆญ๋์ง ์๋ ์ค๋ฅ
์๋์ ํ๋ฉด์ ๋นจ๊ฐ์ ๋ค๋ชจ๋ฐ์ค ์ณ์ง ํ์ดํ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋์ TodoList ํ๋ฉด์ผ๋ก์ ์ด๋์ ๊ตฌํํ๊ณ ์ถ์๋๋ฐ.. Button์ด ํด๋ฆญ๋์ง ์๋๋ผ๊ณ ์!
๋ค๋ฅธ ๋ธ๋ก๊ฑฐ ๋ถ์ ์ฝ์ง ๋ฐฉ์ง๋ฅผ ๋ฐ๋ผ ์ ์ฝ๋๋ฅผ ์ ๊ฒํ์ด์!
์ฒซ ๋ฒ์งธ๋ก Button์ @IBAction ์ด ์ ๋์ด์๋ ํ์ธํ์ด์! -> Ok
๋ ๋ฒ์งธ๋ก Hiererchyํ๋ฉด์ ์ดํด๋ณด๊ณ Button์ Layout์ ๋ฌธ์ ๊ฐ ์๋์ง ์ดํ์ด์! -> Ok
์ธ ๋ฒ์งธ๋ก Button์์ ๋ค๋ฅธ ํ๋ฉด์ด ์ฌ๋ผ๊ฐ ์๋์ง๋ฅผ ํ์ธํ์ด์ -> Ok
๋ค ๋ฒ์งธ๋ก StackView์ SubView๋ก ๋ฒํผ์ ์ฌ๋ฆฐ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ์ด์ -> ๋๋ฐ..?
์ ๋ฒํผ์ ์ผ์ชฝ์ Label๊ณผ StackView๋ก ํ์ฑ์ด ๋์ด์๊ธฐ ๋๋ฌธ์ SuperView์ธ StackView ์น๊ตฌ๊ฐ ์ ์ค์ฒ๋ฅผ ๋นผ์์๊ฐ๋ ๊ฒ ์๋๊ฐ๋ผ๊ณ ์๊ฐํด์ SuperView์์ subview๋ก ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๋ ์ฝ๋์ ๋ฒํผ์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ๋ ์ฝ๋๋ฅผ ์ง์ฃผ์์ต๋๋ค. ์๋์ฒ๋ผ์!
func setGoToTodoButton() {
stackView.isUserInteractionEnabled = true // ์ด์ subview๋ก ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํจ
stackView.addSubview(goToTodoButton) // ๋ฒํผ์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ์
}
ํ์ง๋ง ํธ์ถ๋์ง ์๋๋ผ๊ณ ์! ์ ์ฝ๋๋ ์ ๋ฌธ์ ๊ฐ ์๋์๋ ๊ฒ ๊ฐ์ต๋๋ค..!
๊ทธ๋์ ๊ทธ๋ฅ ๋ฒํผ ์ง์ฐ๊ณ ๋ค์ ์ค์นํ ๊น?! ํด์ ๋ฒํผ์ ์ง์ฐ๊ณ ๋ค์ ์ฌ๋ ค์ AutoLayout ์ก์๋๋ ๋๋๋ผ๊ณ ์?!?!
์ ๊ฐ ์๊ฐํ ์ ์ฝ๋์ ์์ธ์ button ์์ ์ฌ๋ ค์ง ์ด๋ฏธ์ง๊ฐ button์ ๋๋ฅด๋ ์ ์ค์ฒ๋ฅผ ๋นผ์์ ๊ฐ ๊ฒ ๊ฐ์์! ํ์ฌ์ hirerchy๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ์ด ํ๋์์ผ๋ก ํ์๋ UIButton์์ ๋ฐ๋ก image๊ฐ ์์ด์ผ ํ๋๋ฐ, ์ ์ hirerchy์์๋ ์ ์ฌ์ด์ ํ ๋ทฐ๊ฐ ๋ ์์๋ ๊ฒ ๊ฐ์์! ๊ทผ๋ฐ ๊ทธ๊ฒ ๋ฌธ์ ์ธ์ง ๋ชฐ๋์์ด์.. ใ
์ด์ ๋ถํฐ Button ์์๋ ํ ๊ฐ์ imageView๋ง์ด ์ฌ๋ผ์ ์์ด์ผ ํ๊ตฌ๋! ์์์ผ๋ฉด ๋์ฃ ใ
1์ผ 1๋ก๊ทธ 100์ผ ์์ฑ IT์ง์
๋คํธ์ํฌ ํจ๊ณผ๋ ์ฌ๋๋ค์ด A๋ฅผ ๋ง์ด ์ฐ๋ฉด ๋ง์ด ์ธ์๋ก ๋น์ ์๊ฒ๋ A์ ํธ์ฉ์ด ์ปค์ง๋ฉฐ, ๊ทธ ํจ๊ณผ๋ ์ฌ์ฉ์์ ์์ ๋๋ต ๋น๋กํ๋ค๋ ๋ป์ด๋ค.
"์์ฑ๋ ์ฅ์น๊ฐ ๋ฒ์ฉ ์ปดํจํ ๊ธฐ๊ณ๊ฐ ๋๋ ค๋ฉด ์ฐ์ ์ฐ์ฐ, ๊ธฐ์ต-์ ์ฅ, ์ ์ด, ์ด์์์์ ์ฐ๊ฒฐ์ ๋ด๋นํ๋ ํน์ ์ฃผ์ ๊ธฐ๊ด์ ํฌํจํด์ผ ํ๋ค."
- ์์ ๋ฒ ์ค, ํ๋จผ ๊ณจ๋์คํ์ธ, ์กด ํฐ ๋ ธ์ด๋ง, 1946
๐ ์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ
[์ฝ์ง ๋ฐฉ์ง] UIButton์ด Tap Gesture๋ฅผ ์ธ์ ๋ชปํ๋ ์์ธ 5๊ฐ์ง