[Toy Project] QuotesGenerator(명언생성기)

Bright Hyeon·2021년 12월 24일
1

ToyProjects [iOS]

목록 보기
1/3
post-thumbnail

🍎 QuotesGenerator

🍏 기능 상세

  • 버튼을 누를 때마다 랜덤한 명언이 생성됩니다.
  • 새로운 진로에 대한 걱정을 할 때 들었던 응원의 말들을 넣어보았습니다.

🍏 활용 기술

  • Storyboard
  • AutoLayout
  • Content Hugging & Compression Resistance
  • IBOutlet & IBAction
  • UIKit
    - UIViewController
    • UIView ( UILabel, UIButton )

🍏 기능 구현

  1. UI 디자인
  • 스토리보드 상의 메인 View에 Label, UIView, Button을 추가하고 Constrains(제약조건)을 걸어줍니다.
  • UIView 안에 Label 2개를 추가하고, Constraints 및 priority를 걸어줍니다.
  1. Quote.swift 파일 생성
import Foundation

struct Quote {
    let contents: String
    let name: String
}
  • ViewController에서 사용할 구조체를 생성해줍니다.
  • contents에는 '응원의 말'을 할당할 것이고, name에는 말 그대로 '이름'을 할당할 것입니다.
  1. ViewController 코딩
  • IBOutlet변수와 IBAction함수를 View로부터 ViewController로 연결.
  • '구조체 타입의 값들을 배열 형태'로 가지는 상수 quotes 생성.
  • 액션함수 안에 랜덤한 난수를 생성하는 public 함수 arc4random_uniform()를 사용. 이 함수는 UInt32타입의 값을 반환하기에, Int형으로 형변환하여 값 할당.
  • 이를 이용하여 quotes배열의 random한 index에 접근.
  • 랜덤값을 IBOutlet변수에 넘겨주어 버튼을 누를 때마다 랜덤한 값이 나오도록 구현.
import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var quoteLabel: UILabel!
    @IBOutlet weak var nameLabel: UILabel!
    let quotes = [
        Quote(contents: "너가 진정 하고 싶은 일을 해라.", name: "어머니"),
        Quote(contents: "25살이 뭐가 늦은 나이냐. 30안됐으면 다 어린거다.", name: "아버지"),
        Quote(contents: "옆에서 응원할게! 얼마가 걸리든 해보자.", name: "여자친구"),
        Quote(contents: "당신이 되고 싶었던 어떤 존재가 되기에는 지금도 결코 늦지 않았다.", name: "조지 엘리엇"),
    ]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func tabQuoteMaker(_ sender: Any) {
        let random = Int(arc4random_uniform(UInt32(self.quotes.count)))
        let quote = quotes[random]
        self.quoteLabel.text = quote.contents
        self.nameLabel.text = quote.name
    }
}

상기 내용들은 fastcampus강의, youtube, 구글링 등을 통해 작성된 내용입니다

profile
i'm Obsessed with Swift. iOS

0개의 댓글