[IOS] X Code์์์ UI ๊ตฌ์ฑ ๋ฐฉ๋ฒ, @IBOutlet ๊ณผ @IBAction , ์ปจํธ๋กค ์ด๋ฒคํธ์ ์ข ๋ฅ
- -
* Xcode์์์ UI ๊ตฌ์ฑ๋ฐฉ๋ฒ 3๊ฐ์ง
1. xib File
xibํ์ฅ์๋ฅผ ๊ฐ์ง ๋จ์ผํํ์์ ๊ตฌํํ๋ ๋ฐฉ์์ด๋ค. ์คํ ๋ฆฌ๋ณด๋๊ฐ ๋์ค๊ธฐ ์ด์ ๋ถํฐ ์ฌ์ฉํ๋ ๋ฐฉ์์ด์ง๋ง, Xcode ์คํ ๋ฆฌ๋ณด๋์ ๋ฒ๊ทธ๋ ์๋ฌ๋ฅผ ๋ฐฉ์ง ํ๊ธฐ ์ํ์ฌ ์์ฆ์๋ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
ํ๋์ ํ๋ฉด ๋ฐ ํ๋์ UI๋ฅผ xibํ์ฅ์์ ๋จ์ผํ์ผ์ ๊ตฌํํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ผ ์ฌ์ด์ ์ฐ๊ฒฐ์ ์ฝ๋๋ก ์ง์ ๊ตฌํํด์ผํ๋ค.
์ฅ์ : ์ฌ๋ฌ๋ช ์ ๊ฐ๋ฐ์๊ฐ ํ์ ์์ ์ฝ๋ ์ถฉ๋์ด ๋ฐ์ํ์ง ์์ ํ์ ์ ์์ํ๋ฉฐ, ํธ์ง ์๋๊ฐ ๋น ๋ฅด๋ค.
๋จ์ : ํ๋ฉด์ ํ๋ฆ์ ์๊ฐ์ ์ผ๋ก ํ์ธํ๊ธฐ ์ด๋ ต๋ค.
2. Storyboard
Xcode์ ์คํ ๋ฆฌ๋ณด๋์์ ํ๋ฉด๊ณผ ์คํํ๋ฆ์ ํจ๊ป ๊ตฌํํ๋ ๋ฐฉ์.
์ฅ์ : Segue๋ฅผ ํตํด ํ๋ฉด์ ์ ํ์ ๋์ผ๋ก ์ง๊ด์ ์ผ๋ก ํ์ธํ๋ฉฐ ๊ฐ๋ฐํ ์ ์๋ค.
๋จ์ : ํ๋ฉด์ ๊ฐ์๊ฐ ๋ง์์ง๊ฒ ๋๋ฉด, ํธ์ง ์๋๊ฐ ๋๋ ค์ง๊ณ ํธ์ง์ ๋ณต์กํด์ง๊ธฐ ๋๋ค.
3. SwiftUI
์ต๊ทผ์ ๋์จ ๋ฐฉ์์ด๋ผ ํ์ ์์ ์ ์ฐ์ด์ง๋ ์๊ณ ์์ผ๋, 2 ~ 3๋ ๋ค์๋ ๋ค๋ฅผ๊ฒ์ด๋ผ๊ณ ํ๋ค.
์ฅ์ : ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์๊ณ , UI๋ฅผ ๊ทธ๋ฆฌ๊ธฐ๊ฐ ์ฝ๋ค๊ณ ํ๋ค.
๋จ์ : ์ต๊ทผ์ ๋์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ถ์คํ๋ค๊ณ ํ๋ค.
* UI์ ์ฝ๋๋ฅผ ์ฐ๊ฒฐํ๋ Outlet๊ณผ Action
@IBOutlet
๊ณผ@IBAction
์ ์คํ ๋ฆฌ๋ณด๋์ UI์ ์ฝ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํ๋ค.- IB ๋ Interface Builder์ ์ฝ์์ด๋ค.
- @๋ ์ด๋ ธํ ์ด์ ์ด๋ผ๊ณ ํ๋ฉฐ, ํ๋กํผํฐ(๋ณ์ ํน์ ๋ฉ์๋)์ ์ฑ๊ฒฉ์ ์๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค. (์ฌ๊ธฐ์์๋ ๊ฐ์ฒด๊ฐ ์ธํฐํ์ด์ค ๋น๋์ ๊ด๋ จ์์์ ์๋ฏธํ๋ค)
<@IBOutlet >
- ์ ์ : ์ปจํธ๋กค๋ฌ์ header file์ ์ ์ธ๋ ๊ฐ์ฒด๋ฅผ ์ธํฐํ์ด์ค ๋น๋๊ฐ ์ธ์ํ๋๋ก ์ฐ๊ฒฐ ํ๋๊ฒ.
- ์ฝ๋๋ฅผ ํตํด์ ์คํ ๋ฆฌ๋ณด๋์ UI์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ค.
- UI์ ์ ๊ทผํ๊ธฐ ์ํ ์์ฑ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
@IBOutlet weak var label: UILabel!
<@IBAction>
- ์ปจํธ๋กค์์ ๋ฐ์ํ ์ด๋ฒคํธ๋ฅผ ์ฝ๋๋ฅผ ํตํด์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
- ์ฆ, ๋ฒํผ๋ฑ์ด ํด๋ฆญ๋๋ '์ด๋ฒคํธ' ๊ฐ ๋ฐ์ํ์๋ ์ด๋ค ๋์์ ํ ๊ฒ์ธ์ง ์ ์ํ๋ ๋ฉ์๋๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
@IBAction func btn(_ sender: Any) {
}
* ์ปจํธ๋กค ์ก์ ์ ์ข ๋ฅ
touchDown : ์ปจํธ๋กค์ ํฐ์นํ์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchDown
touchDownRepeat : ์ปจํธ๋กค์ ์ฐ์ ํฐ์น ํ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchDownRepeat
touchDragInside : ์ปจํธ๋กค ๋ฒ์ ๋ด์์ ํฐ์นํ ์์ญ์ ๋๋๊ทธ ํ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchDragInside
touchDragOutside : ํฐ์น ์์ญ์ด ์ปจํธ๋กค์ ๋ฐ๊นฅ์ชฝ์์ ๋๋๊ทธ ํ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchDragOutside
*touchDragEnter : *ํฐ์น ์์ญ์ด ์ปจํธ๋กค์ ์ผ์ ์์ญ ๋ฐ๊นฅ์ชฝ์ผ๋ก ๋๊ฐ๋ค๊ฐ ๋ค์ ๋ค์ด์์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchDragEnter
*touchDragExit : *ํฐ์น ์์ญ์ด ์ปจํธ๋กค์ ์ผ์ ์์ญ ๋ฐ๊นฅ์ชฝ์ผ๋ก ๋๊ฐ์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchDragExit
*touchUpInside : *์ปจํธ๋กค ์์ญ ์์ชฝ์์ ํฐ์น ํ ๋์๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.touchUpInside
*touchUpOutside : *์ปจํธ๋กค ์์ญ ์์ชฝ์์ ํฐ์น ํ ์ปจํธ๋กค ๋ฐ์์ ๋์๋ ์ด๋ฒคํธ
UIControl.Event.touchUpOutside
*touchCancel : *ํฐ์น๋ฅผ ์ทจ์ํ๋ ์ด๋ฒคํธ (touchUp ์ด๋ฒคํธ๊ฐ ๋ฐ์๋์ง ์์)
UIControl.Event.touchCancel
*valueChanged : *ํฐ์น๋ฅผ ๋๋๊ทธ ๋ฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์กฐ์ํ์ฌ ๊ฐ์ด ๋ณ๊ฒฝ๋์์๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.valueChanged
*primaryActionTriggered : *๋ฒํผ์ด ๋๋ฆด๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ (iOS๋ณด๋ค๋ tvOS์์ ์ฌ์ฉ)
UIControl.Event.primaryActionTriggered
*editingDidBegin : *UITextField์์ ํธ์ง์ด ์์๋ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ
UIControl.Event.editingDidBegin
*editingChanged : *UITextField์์ ๊ฐ์ด ๋ฐ๋ ๋๋ง๋ค ํธ์ถ๋๋ ์ด๋ฒคํธ
UIControl.Event.editingChanged
*editingDidEnd : *UITextField์์ ์ธ๋ถ๊ฐ์ฒด์์ ์ํธ์์ฉ์ผ๋ก ์ธํด ํธ์ง์ด ์ข
๋ฃ๋์์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.editingDidEnd
*editingDidEndOnExit : *UITextField์ ํธ์ง์ํ์์ ํค๋ณด๋์ return ํค๋ฅผ ํฐ์นํ์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
UIControl.Event.editingDidEndOnExit
allTouchEvents : ๋ชจ๋ ํฐ์น ์ด๋ฒคํธ
UIControl.Event.allTouchEvents
allEditingEvents : UITextField์์ ํธ์ง์์
์ ์ด๋ฒคํธ
UIControl.Event.allEditingEvents
*applicationReserved : *๊ฐ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์๋ก ์ง์ ํ ์ ์๋ ์ด๋ฒคํธ ๊ฐ์ ๋ฒ์
UIControl.Event.applicationReserved
*systemReserved : *ํ๋ ์์ํฌ ๋ด์์ ์ฌ์ฉํ๋ ์์ฝ๋ ์ด๋ฒคํธ ๊ฐ์ ๋ฒ์
UIControl.Event.systemReserved
*allEvents : *์์คํ
์ด๋ฒคํธ๋ฅผ ํฌํจํ ๋ชจ๋ ์ด๋ฒคํธ
UIControl.Event.allEvents
* ์ฃผ์์
- ์ฝ๋๋ฅผ ์์ฑ ํ๊ณ , ์คํ ๋ฆฌ๋ณด๋์ UI์ ์ฝ๋๋ฅผ ์ฐ๊ฒฐํด์ฃผ์ด์ผ ํ๋ค.
- Outlet์ด๋ Action์ ์ฐ๊ฒฐํ๋ค๋ฉด, ์ญ์ ํ ๋๋ Scene์์๋ ์ญ์ ํ๊ณ , ์ฝ๋๋ด์์๋ ์ญ์ ํด์ผํ๋ค.
connection Inspector์์ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํ๊ณ ๊ด๋ฆฌ ํ ์ ์๋ค.
'๐ฑ iOS > -- UIKit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(iOS) UIControl - Picker View (0) | 2021.06.02 |
---|---|
(iOS) UIControl - Button (0) | 2021.06.02 |
(iOS) UIControl ๊ณตํต ๊ฐ๋ - Target Action , selector (0) | 2021.06.01 |
(iOS) ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด (Delegate Pattern , tableView , TextField, ํ๋ฉด๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ) (0) | 2021.05.21 |
(iOS) ํ๋ฉด ์ ํ ๋ฐฉ์ (present, pushViewController, Segue) (0) | 2021.05.14 |
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค