๐ Cocoa Touch Framework
- iOS๋ OS ํ๊ฒฝ์์ ์คํํด์ผํ๋ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ์ ๋น๋ํ๊ธฐ ์ํด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๊ฒฝ. (์ ํ ์ต์ ํ & ์ต์์ ๋ ๋ฒจ์ ํ๋ ์์ํฌ) -> iOS ์ฑ์ ๋ง๋๋๋ฐ ํ์ํ ๊ธฐ์ด์ ์ธ ํด
- UIKit = ๋ํ์ ์ธ UI ๋๊ตฌ : iOS ํ๊ฒฝ์ ์ฌ ๊ตฌ์ฑ์์ ์ ์ ์ธํฐ์คํ์ด์ค์์ ๋์ผ์ฑ์ด ์กด์ฌํ๋ ์ด์ ๊ฐ ๋ฐ๋ก ๋์ผํ ์ ์ ์ธํฐ์คํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ.
- UIKit ์์ UILabel๊ณผ UIButton์ด ์๊ณ , ์ฌ๊ธฐ์ UIView๊ฐ ์์๋์ด ์๋ค.
- UILabel : text, textColor, textAligment ....
- UIButton : SetTitle, SetTitleColor...
- UIView : layer(cornerRadius, borderColor, borderWidth...), backgroundColor....
** swiftUI ๋ iOS 13 ์ด์๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅ. ๋ชจ๋ ์ ํ ํ๋ซํผ๊ณผ ํธํ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์์ผ๋ก ์ฌ์ฉ๋ฅ ์ด ๋ ๋์์ง ๊ฒ์ผ๋ก ์์ ์ค.
๐ ์ฌ(Scene)๊ณผ Class ์ฐ๊ฒฐํ๊ธฐ
** Scene ์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ํ๋ฉด, Logic์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ํ๋ฉด์ด ์๋ํ๋๋ก ํ๋ ์์ ์ด๋ค.
โ๏ธ ํฌํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์์ฑํ๊ธฐ
[๊ธฐ๋ณธ์ธํ ]
1. ๋จ์ถํค (Command + N)
- Cocoa Touch Class ์ ํํ๊ธฐ.
** Swift File์ ์ ํํ๋ฉด ์์ฃผ ๊ธฐ์ด์ ์ธ ๊ฒ(foundation)๋ถํฐ ์๋์ ์ผ๋ก ๋ด๊ฐ ์ ๋ ฅํด์ผ ํ๋ค.
2. ์ ๋ณด ์ ๋ ฅ ํด์ฃผ๊ธฐ.
- class๋ ๋ด๊ฐ ์คํ ๋ฆฌ๋ณด๋์์ ์ฐ๊ฒฐํ๋ ค ํ๋ ControllerView๋ฅผ ๊ณ ๋ คํด์ ์ด๋ฆ์ ์ง์ด์ค๋ค.
- Subclass of ๋ ์์๋ฐ๋ ์ํผํด๋์ค๋ฅผ ์ง์ ํ๋ ๊ฒ์ผ๋ก ์คํ ๋ฆฌ๋ณด๋์ ์ถ๊ฐํ ViewController์ ๊ฐ์ ์ข ๋ฅ์ฌ์ผ ํจ.
3. Group๊ณผ Targets ์ค์
- Group์ ํด๋๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง ๊ผญ ํ์ธํ ๊ฒ. -> ํด๋๋ก ์ง์ ๋์ด ์์ง ์์ผ๋ฉด, ๋์ค์ ์ ์ฅ ์์น๊ฐ ๋ณ๊ฒฝ ๋๋ ๋ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์.
4. ์ฐ๊ฒฐํ๊ธฐ
- VC(=ViewController) ์๋จ ์ฒซ๋ฒ์งธ ์์ด์ฝ(์ ํ์ ํ๋์์ด ๋จ)์ ํตํด ํด๋น VC๋ฅผ ์ ํ ํ custom class (์ธ์คํํฐ ์์ญ ์ค๋ฅธ์ชฝ์์ ๋ค๋ฒ์งธ)์์ Cocoa Touch Class์์ ๋ง๋ค์๋ ํด๋์ค ์ด๋ฆ์ ์ฐพ์ ๋งค์นญ ์์ผ์ฃผ๊ธฐ. ๋ณดํต ์ฒซ ๊ธ์๋ง ์ณ๋ ์๋์์ฑ ๋์ง๋ง, ํ์ธ ํ ๊ฒ.
- Inherit Module From Target ์ฒดํฌ.
์ ๊ณผ์ ์ ๋ง์ณ์ผ๋ง IBOulet ๊ณผ IBAction (๋ณ์)๋ฅผ ์ค์ ํ ์ ์๋ค!
[Scene ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ]
1.
Scene ์ฐ๊ฒฐ์ ๋น๊ต์ ๊ฐ๋จํ๋ค.
๋ ์ด๋ธ ๋๋ ๋ฒํผ๋ฅผ ์ ํํ ํ ๋ง์ฐ์ค์ ์ค๋ฅธ์ชฝ ๋ฒํผ์ ๋๋ฅด๊ณ ์ปค์๋ฅผ ๋ทฐ์ปจํธ๋กค๋ฌ ์์ญ์ผ๋ก ๋์ด๋์ผ๋ฉด ์ฐ๊ฒฐ๋๋ค. ์ด๋ Type ์ ํ์ด ์ ๋์ด์๋์ง ํ์ธํด์ฃผ์ด์ผํ๋ค. ์ด๋ฆ์ ์ ํ ๋ ์ฒซ๊ธ์๋ ์๋ฌธ์๋ก ์ฐ๋ ๊ฒ์ด ์ข๋ค. (๋๋ฌธ์๋ก ์ฐ๋ฉด apple์ด ์ ํด๋ ๊ณ ์ ํ ํค์ ํผ๋๋ ๊ฐ๋ฅ์ฑ ๋์)
2.
scene ์ฐ๊ฒฐ์ด ์ ๋์ด ์๋ค๋ฉด VC ์์ญ์์ @IBAOutlet ์ผ๋ก ๋์ค๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
IBOulet → IB = Interface Builder๋ ์๋ฏธ๋ก, ์ด ์์ ์ ์คํ ๋ฆฌ๋ณด๋์์ ์ผ์ด๋๊ณ ์๋ค! ๋ ์๋ฏธ์ ๊ฐ๋ค.
**๋ณดํต์ ๊ฒฝ์ฐ ์ฌ์์ ์ ์ฐ๊ฒฐ์ด ๋์ง๋ง, ์ ๋ ๋๊ฐ ์๋ค. ๊ทธ๋ด ๋ ์๋ฎฌ๋ ์ดํฐ์ด๋ ๋๋ฒ๊น ์์ญ์์ ์ฐ๊ฒฐ์ด ๋์ง ์์ ์๋์ด ์ ๋๋ ๊ฑธ ํ์ธํ ์ ์๋๋ฐ, ์ด๋ด ๋ ํด๊ฒฐ๋ฐฉ์์ ์๋์ ๊ฐ๋ค.
์ฐ์ , ์ฐ๊ฒฐ์ ์ ๋ฌด๋ฅผ ํ์คํ ํ์ ํด์ผํ๋ค. ์ธ์คํํฐ์ (triggered) segues ์์ญ์ ํด๋น ์์ธ๋ ์ด ์์ผ๋ฉด ์ฐ๊ฒฐ์ด ๋์ง ์์์์ ์ ์ ์๋ค.
viewcontroller ์์ญ์์ ์ ํ๋์ง ์์ outlet์ ํ์ดํ ๋ถ๋ถ์ ํด๋ฆญ + ๊ทธ๋๋ก ์ค๋ฅธ์ชฝ ๋ง์ฐ์ค ๋ฒํผ์ ๋๋ฅธ ์ฑ๋ก ์ฐ๊ฒฐํ๋ ค๋ ๋ทฐ๊ฐ์ฒด ๋ถ๋ถ์ผ๋ก ์ฐ๊ฒฐํด์ฃผ๋ฉด ํด๊ฒฐ๋๋ค. ์ฐธ๊ณ ๋ก, IBAction ์ฐ๊ฒฐ ๊ณผ์ ๋ ๋๊ฐ๋ค.
'๐ Dev > UIKit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[UIKit/Storyboard] ํค๋ณด๋ ๋ด๋ฆฌ๊ธฐ (0) | 2023.07.30 |
---|---|
[UIKit/Storyboard] ํ ํ๋ก์ ํธ์์ ๋ค๋ฅธ ์คํ ๋ฆฌ๋ณด๋ ๋ณด๋ ๋ฒ (0) | 2023.07.30 |
[UIKit/Storyboard] ์์ธ๋ ํจ์ (@IBOutlet)๊ณผ ์ก์ ํจ์ (@IBAction) (0) | 2023.07.29 |
[UIKit/Storyboard] Shadow vs ClipsToBound (0) | 2023.07.23 |
[UIKit/Storyboard] Entry Point (0) | 2023.07.23 |