โ ์ด๋ฏธ์ง์ ๋ผ๋ฒจ ๋ค์ด๊ฐ ๋ฒํผ ๋ง๋ค๊ธฐ
๋ฒํผ์ ์ด๋ฏธ์ง๋ ์ค์ด๋ค์ง ์์
→ ๋์์ด๋๊ฐ ํฌ๊ธฐ ์กฐ์ ํด์ ๋ฆฌ์์ค ์ค.
→์ด๋ฏธ์ง๋ทฐ๋ ์ฌ์ด์ฆ ์กฐ์ ๊ฐ๋ฅํด์ ๋ ์์ํจ.
→๋ฒํผ ์คํ์ผ์ default๋กํ๋ฉด ๋ฒํผ ๋ด ์ด๋ฏธ์ง๋ ์์ ๊ฐ๋ฅ but ํ ์คํธ๋ฅผ ์ด๋ฏธ์ง ์๋๋ก๋ ๋ชป ๋ด๋ฆผ
์ด๋ฏธ์ง์ ๋ผ๋ฒจ์ ๋ง๋ค๊ณ ๊ทธ ์์ ๋ฒํผ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ๋ ๊ฐ๋ฅ
Plain Style ์ผ ๋
: ๋ฒํผ ์ค์ฌ๋ ์ด๋ฏธ์ง ์ ์ค์ด๋ฌ.
Default Style ์ผ ๋
: ์ค์ด๋ฉด ์ค์ด๋ค์ง๋ง ํ ์คํธ ๊ฐ๋ ค์ง
→ ํ ์คํธ ์๋ ๋ฒํผ์ผ ๋๋ง ์ธ๋งํ ๋ฏ
→ ์ด๋ฏธ์ง ๋ ํฌ๊ฒ๋ ์ ๋จ
๊ฒฐ๋ก : ๋ฒํผ์ ์์ ์์ฌ๋ก ์ํ๋ ๋ชจ์ ๋ง๋ค๊ธฐ๊ฐ ํ๋ฆ.. ๋ค์ํ๊ฒ ์์ฑ ์ค์ ํด๋ณด๋ฉด์ ์ตํ์ผํจ.
(๊ฑ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด์ ๋ฃ๋๊ฒ ๋ซ์๋ฏ,,,)
โ User Defined Runtime Attributes
- layer.cornerRadius๋ ์ค์ ์ด ๋จ.
- borderColor๋ CGColor๋ฅผ ๋ฐ์์ผํด์ UIColor๋ก ์ค์ ๋ถ๊ฐ๋ผ ์ ๋จ.
1. Scene๊ณผ Logic
Scene
: ์ฌ์ฉ์๊ฐ ์๊ฐ์ ์ผ๋ก ์ ํ๋ ์์ญ
- ์ธํฐํ์ด์ค ๋น๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ.
- ๋จ์ง ์๊ฐ์ ์ธ ์์์ ๋ถ๊ณผํ๋ฉฐ, ๋ก์ง๊ณผ ๋ฌด๊ด
ex. ๋ทฐ๊ฐ์ฒด, ์ ์ค์ณ, ๋ทฐ์ปจํธ๋กค๋ฌ (์ค๋ณด๋ก ๊ฐ๋ฅ)
Logic
: ๊ธฐ๋ฅ๊ตฌํ์ ์ํด ์์ฑํ ์ฝ๋ (swift ์ฝ๋)
ํต์ฌ์ Scene๊ณผ Logic์ ์์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ฒ
๊ฐ ํ๋ฉด(Scene)์ ๊ฐ ํ๋์ ํ์ผ๋ก ๊ตฌํ
2. ์ฝ๋๋ก ๋ทฐ ๋ง๋ค๊ธฐ
โ ํ์ผ ์์ฑ
- Group: ํ์ผ ์์น ์ค์
- Target: ๋ฌด์กฐ๊ฑด ์ฒดํฌ
- Target์ ํด์ ํ๋ฉด ํ๋ก์ ํธ ์์ ์์์๋ ์๊ธฐ ๊ฒ์ธ์ง ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ์์
import ์ฃผ์ ์ฒ๋ฆฌ
Identity Inspector
- Class์ ๋ง๋ค์ด๋์ UIViewControllerํ์ผ ๋ช ์์ฑ (์ํฐ ๊ผญ ์น๊ธฐ !)
- inherit Module From Target ์ํ๋ฉด ๋ชป ์ฐพ์์ ์ค๋ฅ ๋ชปํ ํ๋ฅ ํผ
- ViewDidLoad ์ ์ด๋ class ๋ฐ์๋ ๋ชป ๋ฃ์.
- Strong์ผ๋ก ์ค์
- IB: Interface Builder
- UIImageView! → ! ๊ฐ์ ์ธ๋ํ์ apple์ด ์ผ๋จ ๋ง๋ค์ด์ค๊ฑฐ๋๊น ์ฐ์(๋ฌด์กฐ๊ฑด ์ด๋ฏธ์ง๋ทฐ๋ผ๋ ๋๋์ ์๋ฏธ)
- ViewDidLoad
- ์ฌ์ฉ์์๊ฒ ํ๋ฉด์ด ๋ณด์ด๊ธฐ ์ง์ ์ ์คํ๋๋ ๋ถ๋ถ
- ๋ชจ์๋ฆฌ ๋ฅ๊ธ๊ธฐ, ๊ทธ๋ฆผ์ ๋ฑ ์คํ ๋ฆฌ๋ณด๋์์ ์ค์ ํ ์ ์๋ UI๋ฅผ ์ค์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ
- ๋ทฐ ์ปจํธ๋กค๋ฌ ์๋ช ์ฃผ๊ธฐ
- ์๋์์ฑ ์์๋ ๋ด๊ฐ ๋ญ๋ฅผ ๋ง์ด ์ฐ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์
- ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ
UIImage(named:) : ์์ ์ ์๋ ์์ ์ฌ์ฉํ ๋ ์ฐ์
borderColor๋ CGColor๋ผ UIColor.red๋ก ์ค์ ๋ถ๊ฐ (CG: CoreGraphics)
UIColor.red → UIColor.red.cgColor ๋ก ํด์ค์ผํจ.
โ label ์ถ๊ฐํ๊ณ ์ฐ๊ฒฐ ํด์ฃผ๊ธฐ
โ ์ด๋ฏธ์ง์ ๋ผ๋ฒจ ์ด๋ฆ ๋ฐ๊ฟ๋ณด๊ธฐ
์ด๋ฏธ์ง ์ด๋ฆ ๋ณ๊ฒฝ
์๋ ์ฝ๋ ๋ณ์๋ค๋ ๋ณต์ฌํด์ ๋ฐ๊พธ๋ฉด ๋
๋ผ๋ฒจ ์ด๋ฆ ๋ณ๊ฒฝ
infoLabel → informationLabel
์คํํ๋ฉด ์ค๋ฅ๋จ (key value coding-compliant Error)
→ ์ค๋ณด ๊ฐ๋ณด๊ธฐ
- x๋๋ฌ์ ์์ ๊ธฐ
- ๋ฐ์ ์๋ก ์๊ธด ์ด๋ฆ๋ค๋ก ๋ค์ ์ฐ๊ฒฐ
โ ์ด๋ฆ ์์ ์ด๊ฐ๋จ๋ฒ์
- ๋ณ๊ฒฝํ ๋ณ์ ์ฐํด๋ฆญ Rename
- ์ค๋ณด๊น์ง ๋ค ๋ฐ๊ฟ์ค
โ ์ฝ๋ ์ค๋ํซ ๋ง๋ค๊ธฐ
Shift + Command + L
๋ก ์ค๋ํซ ์ฐฝ ์ด์ด์ ํ์ํ ๋๋ง๋ค ๊ฐ์ ธ๋ค ์ฐ๋ฉด ๋จ
Option + Command + ์ข์ฐ ํค : ์ฝ๋ ์ด๊ณ ์ ๊ธฐ
โ ์ฝ๋๋ก ๋ฒํผ ์ค์ ํด๋ณด๊ธฐ
์คํ ๋ฆฌ๋ณด๋
์ฝ๋
highlighted
๋ฒํผ์ ๋ผ์ง๋ง๊ณ ๊พน ๋๋ ์ ๋(๋๋ฆฐ ๊ฑด ์๋ ํ๋ฉด์ด ๋์ด๊ฐ๊ฑฐ๋ ํ์ง ์์)
setTitle
์ค๋ณด๋ก ๋ฃ์ ์ด๋ฏธ์ง ๊ทธ๋๋ก ์๊ณ ํ์ดํ ์ถ๊ฐ ๋จ
setImage
๊ธฐ๋ณธ ์ค๋ณด๋ก ๋ฃ์ ์ด๋ฏธ์ง๋ ์์ด์ง๋ ๋ฏ?
โ ์ด๋ฏธ์ง ๋๋ค์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ (๋๋ค ํ ์ ๋ง๋๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ)
let์ ์ฐ๋ ์ด์ ๋ viewDidLoad ์คํ ์ค์ ๊ฐ ๋ฐ๋์ผ ์์
์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ
๋๋ฒ์งธ ๋ฐฉ๋ฒ
์ต์ ๋ ๊ด๋ จ ๊ฒฝ๊ณ ๋ธ
๋ฐฐ์ด์ ๊ฐ์ด ์์ด์ randomResult์ nil์ด ๋ค์ด๊ฐ ์ผ์ด ์์ด์ ๋ฌธ์ ์ ํ ์๋ค๊ณ ์๋ฆฌ์น ์ ์์
์ธ๋ฒ์งธ ๋ฐฉ๋ฒ
๋๋คํ ์์๊ฐ ์๋ ๋๋คํ ์ธ๋ฑ์ค๋ก ์ ๊ทผ
โ ๋ฒํผ์ ์ก์ ๋ฃ๊ธฐ
- Type : Any๋ง๊ณ UIButton์ผ๋ก ํด์ค์ผ ์์ ์ ์ (๋ด์ผ ์ค๋ช )
- Name : ๋ ธ์๊ด
- Event : 99ํผ์ผํธ touch up inside ์.
- @IBAction ์ฝ๋๋ ํด๋ฆญํ์ ๋ ์คํ ๋๊ธฐ ๋๋ฌธ์ ์ฝ๋์์ ์ด๋ฆ ๋ฐ๊ฟ๋ ํด๋ฆญ ์ ํ๋ฉด ์ค๋ฅ ์ ๋จ(Rename์ผ๋ก ๋ฐ๊ฟจ์ ๋๋ ์ค๋ฅ ์์ด ์ ์ ์ฉ ๋จ)
์ก์ ํจ์ ์์ ์ด ๋ฐฐ์ด์ ๋ฃ๋๋ค๋ฉด ์ก์ ํจ์ ๋๋ฅผ ๋๋ง๋ค ๋ฐฐ์ด์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ค๊ฐ ์ฌ๋ผ์ก๋ค๊ฐ ๋ฐ๋ณต
→์๋ง๋ฒ ๋๋ฅธ๋ค๊ณ ์น๋ฉด ๋นํจ์จ
๋ฐ๋ผ์ ๋ฐ๊นฅ์ ๋ฃ์ด์ฃผ๋๊ฒ ์ข์.
โ ํจ์ํ ํ๊ธฐ
viewDidLoad() ์์ ์ต๋ํ ์งง๊ฒ
โ ํจ์์ ์ข ๋ฅ
- ์ ํ์ด ๋ง๋ ๊ฒ
- ex.viewDidLoad : ์ ํ์ด ๋ง๋ค์ด ๋จ์ผ๋ฉฐ ์ธ์ ์คํ ๋ ์ง ์ ํ์ด ๋ด๋ถ์ ์ผ๋ก ์ ํด ๋์.
- ์ฐ๋ฆฌ๊ฐ ์ง์ ๋ง๋ ๊ฒ
- ์ฐ๋ฆฌ๊ฐ ์ด๋ฆ,๊ธฐ๋ฅ,์คํ ํ์ด๋ฐ ๋ชจ๋ ์ง์ ์ค์
โ Break Point
- ๋ฉ์ถฐ ์๋ ์ํ
- ์ฝ๋๋ฅผ ์ํ๋ ๊ณณ์์ ํ์คํ์ค ๋ฉ์ถฐ์ ํ์ธ
- ์ค๋ฅธ์ชฝ์ผ๋ก ์ค์์ดํํ๋ฉด ์ฌ๋ผ์ง
- ํด๋ฆญํ๋ฉด ๋นํ์ฑํ
→ ๋๋ฅด๋ฉด ๋ค์ ๋ธ๋ ์ดํฌ ํฌ์ธํธ๋ก ๋์ด๊ฐ
→ ํ ๊ธํด์ ๋ชจ๋ ๋ธ๋ ์ดํฌ ํ์ฑํ/๋นํ์ฑํ ๊ฐ๋ฅ
→ ๋ชจ๋ ๋ธ๋ ์ดํฌ ํฌ์ธํธ ํ๋ฒ์ ํ์ธ
โ ํ swiftํ์ผ์ ์ฌ๋ฌ๊ฐ class
- ๋ช ๋ฐฑ๊ฐ ํด๋์ค๊ฐ ํ ํ์ผ์ ์์ด๋ ์๊ด ์์.
- ํ์ง๋ง ๋์ ์ ๋ณด์ด๊ธฐ ์ํด ๋ณดํต ํ ํ์ผ์ ํ ํด๋์ค
โ ๋ผ๋ฒจ ๊ธ์ ์ค ์ ๋ฌด์ ํ์ผ๋ก ์ฐ๊ธฐ
resultLabel.numberOfLines = 0
โ General : Build Setting์ ๊ฐํธ ๋ณด๊ธฐ ๋ฒ์
General
Build Setting
โ ํ ์คํธ ํ๋ ํ ์คํธ ๋น์ฐ๊ธฐ
โ ๋ฐํ ๋ทฐ ๋๋ฅด๋ฉด ํค๋ณด๋ ๋ด๋ ค๊ฐ๊ฒ ํ๊ธฐ
- ์ํ๋ ๊ณณ์ Tap Gestrue Recognizer ์ถ๊ฐ (์ง๊ธ์ ๋ฐํ View)Tap Gesture Recognizer์ถ๊ฐ ๋ ๋ชจ์ต
2. @IBAction ์ฐ๊ฒฐ
3. ์ก์ ํจ์์ ๋ทฐ ํธ์ง ์ํ ์ข ๋ฃํ๋ ์ฝ๋ ์ถ๊ฐ
โ Could not insert new action connection ์ค๋ฅ
→๊ฐ์ข ํ ํด๊ฒฐ
๊ฐ์ข ์ Command+Q ํ๋ฉด ํธํจ
โ Outlet Collection
์๋์ ๊ฐ์ด ์ ์ธํ ํ (์ค๋ณด์์ ๋ผ๋ฒจ ๋์ด์์ ์ ์ธํ๋๊น ์ค๋ฅ๋จ;; ์๋์ฒ๋ผ ์ฝ๋๋ก ์ ์ธํด๋ ์์ฝ ๊ป๋ค ํค๋๊น ๊ฒจ์ฐ ๋จ. ์ ๊น๋ค๋ก์ด๋ …)
์คํ ๋ฆฌ๋ณด๋์ ๊ฐ ๋ผ๋ฒจ๋ค์ ๋์ด ๋๊ธฐ (์ธ ๋ฒ ์ถ๊ฐ)
์ ์ ์ฉ ๋จ
โ ํจ์์ ๋งค๊ฐ๋ณ์ ์ถ๊ฐํด์ ์ฌ์ฉํ๊ธฐ
outletName :์ธ๋ถ ๋งค๊ฐ๋ณ์
name: ๋ด๋ถ ๋งค๊ฐ๋ณ์
์ธ๋ถ ๋งค๊ฐ๋ณ์ ์ ์ฐ๋ ๋ฒ - ์์ผ๋์นด๋ ์๋ณ์(_) ์ฌ์ฉ
์ฉ์ด ์ ๋ฆฌ
- ๋งค๊ฐ๋ณ์(Parameter) : ์ ๋ฌ์ธ์๋ฅผ ๋ฐ์ ๋ณ์. ํจ์ ๋ด๋ถ์์ ํํํ๋ ๋ง
- ์ธ๋ถ ๋งค๊ฐ๋ณ์ (Argument Label)
- ๋ด๋ถ ๋งค๊ฐ๋ณ์ (Parameter name)
- ์ ๋ฌ์ธ์(Argument) : ํจ์๋ฅผ ํธ์ถ ํ ๋ ์ค์ง์ ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฐ, ์ ๋ฌ ํ๋ ๊ฐ (์์๊ฐ๊ฐ ๋ณ๋)
โ Alert ์ฝ๋
let alert = UIAlertController(title: "์ด๊ณณ์ด ํ์ดํ์
๋๋ค", message: "์ด๋ฌ์ฟต ์ ๋ฌ์ฟต ๋ด์ฉ์ ์์ฑํด์ฃผ์ธ์!", preferredStyle: .alert)
let cancel = UIAlertAction(title: "์ทจ์", style: .cancel)
let ok = UIAlertAction(title: "ํ์ธ", style: .default)
alert.addAction(cancel)
alert.addAction(ok)
present(alert, animated: true)
'SeSAC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] TIL_230728 (0) | 2023.08.01 |
---|---|
[iOS] TIL_230727 (0) | 2023.07.31 |
[iOS] TIL_230726 (0) | 2023.07.31 |
[iOS] TIL_230725 (0) | 2023.07.30 |
[iOS] TIL_230718 (0) | 2023.07.20 |