๐์ฒซ๋ฒ์งธ ํ๋ก์ ํธ
๋ฒํผ์ ํด๋ฆญํ ๋ ๋ง๋ค ๋๋ค์ผ๋ก ๋ ์จ(=Symbol)์ด ๋ฐ๋๋ ์ฑ์ ๋ง๋ค์ด๋ณด์
1๏ธโฃ ์ฌ์ ์ ํ์ํ ๋ค์ด๋ก๋ : SF Symbols
2๏ธโฃ ๋ ์ด์์ ๊ตฌ์ฑ
- Stack View ์์ Image View -> Label -> Button
3๏ธโฃ ๊ธฐ๋ฅ ๊ตฌํ ์ฝ๋
//
// SymbolRollerViewController.swift
// SymbolRoller
//
// Created by ์ค์์ง on 2022/05/11.
//
import UIKit
// UIViewController = Page๋ฅผ ๋ํ๋ด๋ ํ๋์ ๋จ์
// UIViewController๋ฅผ ์์๋ฐ์ SymbolRollerViewController
class SymbolRollerViewController: UIViewController {
let symbols: [String] = ["sun.min", "moon", "cloud", "wind", "snowflake"]
// @IBOutlet : Interface builder์ ์๋ UI ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ์ ํ๊ฒ ๋ค.
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var button: UIButton!
func reload() {
// TO_DO
// - ์ฌ๋ณผ์์, ํ๋๋ฅผ ์์๋ก ์ถ์ถํด์
// - ์ด๋ฏธ์ง์ ํ
์คํธ ์ค์ ์ ํ๋ค.
let symbol = symbols.randomElement()!
imageView.image = UIImage(systemName: symbol)
label.text = symbol
}
// app ์คํ ์, viewDidLoad()๋ฅผ ๊ฑฐ์ณ์ ๋ฌ๋ค.
override func viewDidLoad() {
super.viewDidLoad()
reload()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
// @IBAction : ํด๋ฆญ์ด ๋์ ๋, ์ด๋ค ๊ฒ์ ์ํํ๊ฒ ๋ค.
@IBAction func buttonTapped(_ sender: Any) {
reload()
}
}
- View Controller : ํ์ด์ง๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด
- ํ๋ฉด์ ๋ํ๋๋ View Controller๊ฐ ๊ฐ์ฒด๊ฐ ํ๋ฉด์ ๋ณด์ด๊ธฐ ๊น์ง : viewDidLoad -> viewWillAppear -> viewDidAppear
- DRY : Do not Repeat Yourself (์ค๋ณต๋ ์ฝ๋ ์ฐธ์ง ์๊ธฐ) == ํจ์๋ก ๋ง๋ค๊ธฐ
-> ์ด๋ฅผ ์ํด reload() ํจ์๋ฅผ ๋ง๋ค์๋ค.
4๏ธโฃ ์ง๊ธ๊น์ง ๊ตฌํํ ํ๋ฉด
- ๋ฒํผ์ ๋๋ฅด๋ฉด Image View์ Label์ด ๋ฐ๋๋ ๊ฒ์ ๋ณผ ์ ์์.
5๏ธโฃ ์์ ์ ํ ๊พธ๋ฏธ๊ธฐ
1. Label Custom
2. Button Custom
- Image ํญ๋ชฉ์ arrow.3.~ ์ ๋ฃ๊ณ padding ํญ๋ชฉ์ 10์ผ๋ก ๋ง์ถ๋ฉด ํ ์คํธ์ ์ด๋์ ๋ ๋จ์ด์ง ์ด๋ฏธ์ง๊ฐ ๋ํ๋๊ฒ ๋๋ค.
// app ์คํ ์, viewDidLoad()๋ฅผ ๊ฑฐ์ณ์ ๋ฌ๋ค.
override func viewDidLoad() {
super.viewDidLoad()
reload()
// ๋ฒํผ์ tintColor ๋ฐ๊พธ๊ธฐ
button.tintColor = UIColor.systemPink
}
- ์์ ๊ฐ์ด viewDidLoad() ํจ์์ ๋ฒํผ์ tintColor์ ๋ฐ๊พธ๋ ์ฝ๋๋ฅผ ์์ฑ : button.tintColor = UIColor.systemPink
6๏ธโฃ ์์ฑ๋ ์ฑ
Reference
ํจ์คํธ์บ ํผ์ค ์จ๋ผ์ธ ๊ฐ์
'iOS > Toy project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS : Toy Project] Apple Framework List (2) (0) | 2022.05.28 |
---|---|
[iOS : Toy Project] Apple Framework List (1) (0) | 2022.05.28 |
[iOS: Toy Project] Chat List (0) | 2022.05.23 |
[iOS : Toy Project] Stock Rank (0) | 2022.05.21 |
[iOS : Toy Project] Simple Weather (0) | 2022.05.17 |