iOS 개발자/iOS Stanford Univ

[iOS 스탠포드] Chapter1

FDEE 2021. 6. 18. 15:54

이번 방학동안에는 뭘하면서 실력을 쌓아볼까 고민을 하다가

얼마 후에 있을 네이버 부스트캠프 지원과

Stanford Univercity 교수님께서 강의하신 iOS11 강의를 쭉 들어볼 생각입니다

 

해당 영상은 Youtube 내에도 있지만 아무래도 영문강의다 보니 힘들것 같더라구요

그래서 Edwith 에 있는 [스탠포드]Swift를 활용한 iOS11 앱 개발 www.edwith.org/swiftapp

 

[스탠포드]Swift를 활용한 iOS11 앱 개발 강좌소개 : edwith

- 커넥트재단

www.edwith.org

위 강의가 한국어 자막과 더불어 간단한 요약내용이 있어 선택했습니다!

 

Chapter 1

✔︎ 목표

- 카드를 클릭하면 뒤집어지며, count 수가 증가된다!

- 여러개의 카드의 outlet, action을 묶어서 연결하자!

 

✔︎ 구현 내용

- 카드의 이미지들을 [String] 형식으로 미리 준비한다

- @IBoutlet var cardButtons: [UIButton]! 형식으로 여러개의 카드를 한 배열형태로 연결한다

- @IBAction func touchCard(_ sender: UIButton) 메소드에 여러개의 카드를 연결하여 cardButtons 내에 sender와 일치되는 index를 이용하여 해당 카드를 뒤집는 flipCard 메소드를 실행한다

- func flipCard 메소드에서는 이모티곤과 버튼을 받아와 이모티콘의 값에 따라 뒤집는 식으로 구현한다

 

✔︎ 새롭게 알게된 기능들

- didSet : var 변수의 값이 변화될 때 자동으로 메소드를 호출할 수 있는 기능이 있다는 것을 처음 알게 되었다!

var flipCount = 0 {
    didSet { flipCountLabel.text = "Flips: \(flipCount)" }
}

- @IBoutlet var cardButtons: [UIButton]! 형식으로 여러개의 outlet들을 연결할 수 있다는 점은 알고있었으나, action에서 받아온 sender와 비교를 통한 index 접근방식은 처음 알게 되었다.

if let cardNumber = cardButtons.firstIndex(of: sender) {
    print("cardNumber = \(cardNumber)")
}

 

✔︎ 동작 화면

 

✔︎ 전체 코드

import UIKit

class CP1_ViewController: UIViewController {
    
    var flipCount = 0 {
        didSet { flipCountLabel.text = "Flips: \(flipCount)" }
    }
    var emojiChoices: [String] = ["👻", "🎃", "👻", "🎃"]
    
    @IBOutlet var cardButtons: [UIButton]!
    @IBOutlet var flipCountLabel: UILabel!
    
    @IBAction func touchCard(_ sender: UIButton) {
        flipCount += 1
        if let cardNumber = cardButtons.firstIndex(of: sender) {
            print("cardNumber = \(cardNumber)")
            flipCard(withEmoji: emojiChoices[cardNumber], on: sender)
        } else {
            print("chosen card was not in cardButtons")
        }
    }
    
    func flipCard(withEmoji emoji: String, on button: UIButton) {
        if(button.currentTitle == emoji) {
            button.setTitle("", for: .normal)
            button.backgroundColor = UIColor.orange
        } else {
            button.setTitle(emoji, for: .normal)
            button.backgroundColor = UIColor.white
        }
    }
}

 

✔︎ 깃허브 : https://github.com/FreeDeveloper97/iOS_Stanford_Univ

 

FreeDeveloper97/iOS_Stanford_Univ

Contribute to FreeDeveloper97/iOS_Stanford_Univ development by creating an account on GitHub.

github.com

 

'iOS 개발자 > iOS Stanford Univ' 카테고리의 다른 글

[iOS 스탠포드] Chapter3  (0) 2021.07.07
[iOS 스탠포드] Assignment 1 : Concentration  (0) 2021.07.05
[iOS 스탠포드] Chapter2  (0) 2021.06.22