๐Ÿ’ก TIL - 22.07.05

saniยท2022๋…„ 7์›” 5์ผ
1
post-custom-banner

โœ… Checklist

  1. UIKit
  2. UIViewController
  3. UIView
  4. @IBOutlet
  5. @IBAction

1. UIKit


iOS, iPadOS, Mac Catalyst, tvOS, watchOS ์•ฑ์„ ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ User Interface ๋„๊ตฌ ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์œ„ํ•œ ์œˆ๋„์šฐ์™€ ๋ทฐ ์•„ํ‚คํ…์ณ, ์‚ฌ์šฉ์ž์˜ ์ธํ’‹์„ ์ „๋‹ฌํ•˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ณ ๋“ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ, ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ์˜ ์•ฑ! ์‚ฌ์ด์˜ ์ธํ„ฐ๋ž™์…˜์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด ์ค€๋‹ค :)

iOS ์•ฑ ์ œ์ž‘์—์„œ UIKit ํ˜น์€ SwiftUI๋Š” ๊ผญ ํ•„์š”ํ•˜๋‹ค! ํ™”๋ฉด์ด ์žˆ์–ด์•ผ ํ•˜๋‹ˆ๊นŒ..!!


โ†’ UIKit ๋ณด๋Ÿฌ ๊ฐ€๊ธฐ




2.ย UIViewController

UIViewController๋Š” ๋ทฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋‹ค! UIResponder๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค.


UIResponder๋Š” ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๊ณ  ์ด๋ฒคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ถ”์ƒ์  ์ธํ„ฐํŽ˜์ด์Šค๋ผ๊ณ  ํ•œ๋‹ค :)


์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๋ทฐ์ปจ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด ์š”๋Ÿฐ ํ™”๋ฉด ํ•˜๋‚˜๋‹ค!ย 

๊ทธ๋ฆฌ๊ณ  ์ด View Controller๋Š” UIViewController๋ฅผ ์ƒ์†๋ฐ›์•„ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค :)

๊ทธ๋ƒฅ UIViewController๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ,

UITabBarController, UINavigationController,ย UITableViewController,ย UICollectionViewController ๋“ฑ

๋ชฉ์ ์— ๋”ฐ๋ผ ๋‚˜๋ˆ  ์ง€๊ธฐ๋„ ํ•œ๋‹ค!

์Šคํ† ๋ฆฌ๋ณด๋“œ๋งŒ์œผ๋กœ๋„ ํ™”๋ฉด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ต‰์žฅํžˆ ์ œํ•œ์ ์ด๊ณ  ์•ฑ์˜ ๋™์ž‘์ด๋‚˜ ๊ธฐ๋Šฅ ๋“ฑ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์ฝ”๋“œ๋กœ ํ•ด์•ผ ํ•œ๋‹ค.

์ด ๋•Œ ์šฐ๋ฆฌ๋Š” View Controller ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ๊ตฌํ˜„์„ ํ•˜๊ฒŒ ๋œ๋‹ค~!


โ†’ UIViewController ๋ณด๋Ÿฌ ๊ฐ€๊ธฐ





3. UIView

ํ™”๋ฉด์—์„œ ์ง์‚ฌ๊ฐํ˜• ์˜์—ญ์˜ ์ปจํ…ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด..

UIView๋„ UIResponder๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ํ„ฐ์น˜ ๊ฐ™์€ ์‚ฌ์šฉ์ž์˜ ์ด๋ฒคํŠธ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.


์ƒ์†์ด๋ผ๊ตฌ....?
์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ ์–ด ๋ณด์ž๋ฉด,

๋น„์–ด์žˆ๋Š” UIView๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋Ÿฐ ํ™”๋ฉด์—์„œ ๋ณด์ด๋Š” UIImageView, UIButton, UILabel ๋“ฑ์€ ๋ชจ๋‘ UIView๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค.

์ด๊ฒŒ ๋ฐ”๋กœ ์ €๋Ÿฐ ์š”์†Œ ํ•˜๋‚˜ ํ•˜๋‚˜๋ฅผ ๋ทฐ๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋‹ค(?)!




๋˜ ์˜ˆ๋ฅผ ๋“ค์–ด

UILabel๊ณผ UIButton์€ ๋‘˜ ๋‹ค UIView๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์—, UIView์˜ layer ์†์„ฑ์— dotย syntax๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

label.layer.cornerRadius = 10
button.layer.cornerRadius = 10



ํ•˜์ง€๋งŒ ํ…์ŠคํŠธ๋‚˜ ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ์˜ ๊ฒฝ์šฐ,

UILabel์™€ UIButton์˜ ์†์„ฑ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์„œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

label.text = "๋ ˆ์ด๋ธ”"
button.setTitle("๋ฒ„ํŠผ", for: .normal)

label.textColor = .red
button.setTitleColor(.red, for: .highlighted)

label.backgroundColor = UIColor.yellow
button.backgroundColor = .yellow
// backgroundColor๊ฐ€ UIColor๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์—, ์œ„์ฒ˜๋Ÿผ UIColor๋ฅผ ์ƒ๋žตํ•  ์ˆ˜๋„ ์žˆ๋‹ค



๋ฒ„ํŠผ์€ ์‚ฌ์šฉ์ž์˜ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋‹ค!
UIButton์ด UIView๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค๊ณ  ์œ„์— ์ ์—ˆ๋Š”๋ฐ,
UIButton์ด UIControl์„ ์ƒ์†๋ฐ›๊ณ , ๊ทธ UIControl์ด UIView๋ฅผ ์ƒ์†๋ฐ›๋Š” ํ˜•ํƒœ๋‹ค.
(UIView > UIControl > UIButton์˜ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์†๋œ๋‹ค.)

์œ ์ €์˜ ์ธํ„ฐ๋ž™์…˜์„ ๋‹ค๋ฃจ๋Š” ํด๋ž˜์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค ๐Ÿค”



๋ฒ„ํŠผ์˜ .setTitle์—์„œ๋Š”,

์ด๋ ‡๊ฒŒ ๋ฒ„ํŠผ์˜ ์ƒํƒœ๊ฐ’๋„ ๊ฐ™์ด ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค!
for state: UIControl.State๋ผ๊ณ  ๋‚˜์™€์žˆ๋‹ค.
State๋Š” ์ปจํŠธ๋กค์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ์ˆ˜๊ฐ’์ด๋‹ค.

์œ„ ์ฝ”๋“œ์—์„œ .normal์€ ๋ˆ„๋ฅด์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ,
.highlighted๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ์ƒํƒœ(์†๊ฐ€๋ฝ์„ ๋–ผ๊ธฐ ์ „)๋ฅผ ์˜๋ฏธํ•œ๋‹ค :)





4. @IBOutlet


๋ทฐ ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด @IBOutlet์ด๋‹ค.
IB๋Š” Interface Builder์˜ ์•ฝ์ž๋‹ค.
์ฃผ๋กœ UI์ œ์–ด์™€ ๋ทฐ ๊ฐ์ฒด๋ฅผ ํŠน์ •ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค!

์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ Assistant๋ฅผ ์—ด๊ณ ,

๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์ชฝ์œผ๋กœ *์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค๋กœ ๋“œ๋ž˜๊ทธ* ํ•˜๊ฑฐ๋‚˜
*control์„ ๋ˆ„๋ฅธ ์ƒํƒœ๋กœ ์™ผ์ชฝ ๋งˆ์šฐ์Šค๋กœ ๋“œ๋ž˜๊ทธ* ํ•˜๋ฉด

@IBOutlet ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค :)ย 
(์ฃผ๋กœ viewDidLoad() ์•ž์— ๋งŒ๋“ ๋‹ค)

@IBAction๋„ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค!

์ง€์ •ํ•œ ๋ทฐ ๊ฐ์ฒด์˜ ์†์„ฑ์— ์ ‘๊ทผํ•˜์—ฌ ๋ชจ์„œ๋ฆฌ, ํ…Œ๋‘๋ฆฌ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค!


โ†’ Add an outlet connection to send a message to a UI object




4. @IBAction

์‚ฌ์šฉ์ž์˜ ์ œ์Šค์ณ๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ ์‹คํ–‰๋  ๊ธฐ๋Šฅ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค!

@IBOutlet ๋ณ€์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ Assistant๋ฅผ ์—ด๊ณ ,

๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์ชฝ์œผ๋กœ *์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค๋กœ ๋“œ๋ž˜๊ทธ* ํ•˜๊ฑฐ๋‚˜
*control์„ ๋ˆ„๋ฅธ ์ƒํƒœ๋กœ ์™ผ์ชฝ ๋งˆ์šฐ์Šค๋กœ ๋“œ๋ž˜๊ทธ* ํ•˜๋ฉด

@IBAction ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค!


UIButton, UISwitch ๋“ฑ UIControl์„ ์ƒ์†๋ฐ›๋Š” ๊ฐ์ฒด๋“ค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค :)


profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€