일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ux
- 서블릿
- 머신러닝
- 덴디컨설팅
- 리스트
- 파이썬
- ui
- 전주독서실
- java
- 전주스터디카페
- iOS개발강의
- 코딩
- 썸머스쿨예약
- K디지털크레딧
- 딥러닝
- 스프링
- 바이트디그리
- 빅데이터
- 코린이
- 자바페스티벌
- 문제풀이
- 스마트인재개발원
- 패스트캠퍼스
- Python
- 자바
- 자바스크립트
- 광주직업학교
- 메시지시스템
- 내일배움카드
- jsp
- Today
- Total
멀리 보는 연습
iOS 개발 강의 정리_초간단 명언 생성 앱 구현 본문
🌻 핵심 : 버튼을 누를 때마다 랜덤으로 명언이 생성된다.
개인적으로 명언을 좋아하지는 않지만, 명언 생성 앱을 첫 앱(?)으로 만들어 보았다. 막연하게 처음부터 생각해보면, 일단 UI를 구성하고 각 label이나 button에 맞는 기능을 넣어주면 끝나지 않을까?
1. UI
Main Storyboard에 이렇게 그림을 그려준다. 파란 틀 안에 아무것도 없어 보이지만 label 2개를 심어두었다. 호호
2. ViewController
Main Storyboard에서 두개의 label과 한개의 button을 ViewController에 연결시켜준다. label은 IBOutlet, Button은 IBAction을 통해서 연결해주면 된다. 여기서 IB는 Interface Builder의 약자이며, IBOutlet과 IBAction의 공통점은 storyboard와 연결고리 역할을 한다는 것! @IBAction 또는 @IBOutlet 키워드를 통해 StoryBoard에서 버튼이나 레이블같은 컴포넌트와 연결이 가능하다. @IBAction은 Event가 일어난 경우 호출되는 어떠한 동작을 나타내고, @IBOutlet은 어떠한 데이터를 가져온다고 생각하면 된다.
3. Struct(구조체)
어떤 명언인지, 그리고 누가 말한 건지 정의 시킬 필요가 있다. 그래서 struct를 통해서 Quote를 선언해준다.
//구조체 Quote
import Foundation
struct Quote{
let contents : String
let name : String
}
그리고 다시 ViewController로 돌아가서 quotes라는 변수 안에 명언을 촤라라라랄 적어준다.
//ViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var quoteLabel: UILabel!
@IBOutlet weak var nameLabel: UILabel!
let quotes = [
Quote(contents: "열정을 잃지 않고 실패에서 실패로 걸어가는 것이 성공이다.", name: "윈스턴 처칠"),
Quote(contents: "성공한 사람이 되려고 노력하기보다 가치있는 사람이 되려고 노력하라.", name: "알버트 아인슈타인"),
Quote(contents: "지옥을 겪고 있다면 계속 겪어 나가라.", name: "윈스턴 처칠"),
Quote(contents: "간단하게 설명할 수 없으면 제대로 이해하지 못하는 것이다. ", name: "알버트 아인슈타인"),
Quote(contents: "나는 내가 더 노력할수록 운이 더 좋아진다는 걸 발견했다. ", name: "토마스 제퍼슨"),
Quote(contents: "우리는 우리가 늘 생각하는 것이 된다. 그것이 가장 묘한 비밀이다.", name: "얼 나이팅게일")
]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func tapQuoteGeneratorButton(_ sender: Any) {
let random = Int.random(in: 0...4) // 0~4 사이의 난수 생성
let quote = quotes[random]
// 'quotes' 배열 중 랜덤으로 받은 난수 순서에 해당하는 명언을 'quote' 변수에 담기
self.quoteLabel.text = quote.contents
// 명언 내용 가져오기
self.nameLabel.text = quote.name
// 명언 이름 가져오기
}
}
마지막으로 IBAction 즉, '명언 생성'이라는 button을 눌렀을 때 랜덤으로 명언을 보여주기 위한 코드를 작성하면 끝!!
그럼 아래와 같은 앱이 만들어진다. 와웅!