본문 바로가기

iOS 관련 공부

스토리보드 사용해서 앱 만들기

cmd+shift+Y  디버그영역 올리고 내리고

cmd+shift+L  라이브러리 열기

ctr+opt+cmd+Enter  Assistant(코드 나옴)

cmd+R  시뮬레이터

 

 

colorLiteral 이거 바뀜 확인해보기

#colorLiteral( 소괄호열면 된다했는데 오류뜸 -> 아 이미 백그라운드컬러가 있어서 그랬네;; ㅈㅅ

소괄호열고닫아야 뜨는데 노란색 ! 이거 뜨는데 눌러서 색 설정해주면 됨

 

 

연결되어있는거 코드를 걍 지우면 안되고 연결되어있는 연결선을 끊어준 뒤 코드 지워야함(자주하는 실수~)

 

#imageLiteral( )요거 하면 대괄호 사라짐 닫아주면 됨 이미지 선택해서 넣어주면 됨

 

 

주사위 앱 만들기

 

 

가위바위보 앱 만들기

더보기
//
//  ViewController.swift
//  RPSGame
//
//  Created by 내꺼다 on 2/3/25.
//

import UIKit

class ViewController: UIViewController {
    
    // 변수 / 속성
    @IBOutlet weak var mainLabel: UILabel!
    
    @IBOutlet weak var comImageView: UIImageView!
    @IBOutlet weak var myImageView: UIImageView!
    
    @IBOutlet weak var comChoiceLabel: UILabel!
    @IBOutlet weak var myChoiceLabel: UILabel!
    
    var comChoice: Rps = Rps(rawValue: Int.random(in: 0...2))!
    
    var myChoice: Rps = Rps.rock

    
    // 함수 / 메서드
    // 앱의 화면에 들어오면 처음 실행되는 함수
    override func viewDidLoad() {
        super.viewDidLoad()
        // 1) 첫번째/두번째 이미지뷰에 준비(묵) 이미지를 띄워야 함
        comImageView.image = #imageLiteral(resourceName: "ready")
        myImageView.image = UIImage(named: "ready.png")
        
        // 2) 첫번째/두번째 레이블에 "준비"라고 문자열을 띄워야 함
        comChoiceLabel.text = "준비"
        myChoiceLabel.text = "준비"
        
        
    }

    @IBAction func rpsButtonTapped(_ sender: UIButton) {
        // 가위/바위/보(enum)를 선택해서 그 정보를 저장해야됨
        
//        guard let title = sender.currentTitle else {
//            return
//        }
        // 버튼의 문자를 가져옴
        let title = sender.currentTitle!
        print(title)
        switch title {
        case "가위":
            // 가위 열거형을 만들어서 저장
            myChoice = Rps.scissors
        case "바위":
            // 바위 열거형을 만들어서 저장
            myChoice = Rps.rock
        case "보":
            // 보 열거형을 만들어서 저장
            myChoice = Rps.paper
        default:
            break
        }
    }
    
    
    @IBAction func selectButtonTapped(_ sender: UIButton) {
        
        // 1) 컴퓨터가 랜덤 선택한 것을 이미지뷰에 표시
        // 2) 컴퓨터가 랜덤 선택한 것을 레이블에 표시
        switch comChoice {
        case Rps.rock:
            comImageView.image = #imageLiteral(resourceName: "rock")
            comChoiceLabel.text = "바위"
        case Rps.paper:
            comImageView.image = #imageLiteral(resourceName: "paper")
            comChoiceLabel.text = "보"
        case Rps.scissors:
            comImageView.image = #imageLiteral(resourceName: "scissors")
            comChoiceLabel.text = "가위"
        }
        
        // 3) 내가 선택한 것을 이미지뷰에 표시
        // 4) 내가 선택한 것을 레이블에 표시
        switch myChoice {
        case Rps.rock:
            myImageView.image = #imageLiteral(resourceName: "rock")
            myChoiceLabel.text = "바위"
        case Rps.paper:
            myImageView.image = #imageLiteral(resourceName: "paper")
            myChoiceLabel.text = "보"
        case Rps.scissors:
            myImageView.image = #imageLiteral(resourceName: "scissors")
            myChoiceLabel.text = "가위"
        }
        
        // 5) 컴퓨터가 선택한 것과 내가 선택한 것을 비교해서 이겼는지/졌는지 판단/표시
        
        if comChoice == myChoice {
            mainLabel.text = "비겼다"
        } else if comChoice == .rock && myChoice == .paper {
            mainLabel.text = "이겼다"
        } else if comChoice == .paper && myChoice == .scissors {
            mainLabel.text = "이겼다"
        } else if comChoice == .scissors && myChoice == .rock {
            mainLabel.text = "이겼다"
        } else {
            mainLabel.text = "졌다"
        }
        
    }
    
    @IBAction func resetButtonTapped(_ sender: UIButton) {
        
        // 1) 컴퓨터가 다시 처음 준비 이미지뷰에 표시
        // 2) 컴퓨터가 다시 준비 레이블에 표시
        comImageView.image = #imageLiteral(resourceName: "ready")
        comChoiceLabel.text = "준비"
        
        // 3) 내 선택 이미지뷰에도 준비 이미지를 표시
        // 4) 내 선택 레이블에도 준비 문자열 표시
        myImageView.image = #imageLiteral(resourceName: "ready")
        myChoiceLabel.text = "준비"
        
        // 5) 메인 레이블 "선택하세요" 표시
        mainLabel.text = "선택하세요"
        
        // 6) 컴퓨터가 다시 랜덤 가위/바위/보를 선택하고 저장
        comChoice = Rps(rawValue: Int.random(in: 0...2))!
        
    }
    

}

 

맥앱만들기 빙고게임

더보기
//
//  main.swift
//  RandomBingo
//
//  Created by 내꺼다 on 2/5/25.
//

import Foundation

var computerChoice = Int.random(in: 1...100)

var myChoice: Int = 0


while true {
    
    var userInput = readLine()
    
    if let input = userInput {
        if let number = Int(input) {
            
            myChoice = number
        }
    }
    
    //print(myChoice)
    
    
    if computerChoice > myChoice {
        print("Up")
    } else if computerChoice < myChoice {
        print("Down")
    } else {
        print("Bingo")
        break   // 반복문을 종료
    }
    
}

 

업다운앱

더보기
//
//  ViewController.swift
//  UpDownGame
//
//  Created by 내꺼다 on 2/5/25.
//

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var mainLabel: UILabel!
    @IBOutlet weak var numberLabel: UILabel!
    
    // 컴퓨터가 랜덤으로 숫자 선택
    var comNumber = Int.random(in: 1...10)
    
    // 내가 선택한 숫자 담는 변수
//    var myNumber: Int = 1
    
    // 앱의 화면에 들어오면 가장 처음에 실행되는 함수
    override func viewDidLoad() {
        super.viewDidLoad()
        // 1) 메인레이블에 "선택하세요"
        mainLabel.text = "선택하세요"
        
        // 2) 숫자 레이블은 ""
        numberLabel.text = ""
        
    }

    @IBAction func buttonTapped(_ sender: UIButton) {
        // 1) 버튼의 숫자를 가져와야 함
        guard let numString = sender.currentTitle else { return }
        // 2) 숫자 레이블이 변하도록 (숫자에 따라)
        numberLabel.text = numString
        // 3) 선택한 숫자를 변수에 저장 (선택사항)
//        guard let num = Int(numString) else { return }
//        myNumber = num
    }
    
    @IBAction func selectButoonTapped(_ sender: UIButton) {
        
        // 또다른 방법 제시
        // 숫자레이블에 있는 문자열 가져오기(옵셔널 벗기기)
        guard let myNumString = numberLabel.text else { return }
        // 타입 변환 (문자열 -> 정수로)
        guard let myNumber = Int(myNumString) else { return }
        
        
        
        
        // 1) 컴퓨터의 숫자와 내가 선택한 숫자 비교 UP / Down / Bingo (메인레이블)
        
        if comNumber > myNumber {
            mainLabel.text = "Up"
        } else if comNumber < myNumber {
            mainLabel.text = "Down"
        } else {
            mainLabel.text = "Bingo😎"
        }
    }
    
    @IBAction func resetButtonTapped(_ sender: UIButton) {
        // 1) 메인레이블 "선택하세요"
        mainLabel.text = "선택하세요"
        // 2) 숫자레이블을 "" (빈문자열)
        numberLabel.text = ""
        // 3) 컴퓨터의 랜덤숫자를 다시 선택하게
        comNumber = Int.random(in: 1...10)
    }
    
    
    
    
}

 

 

스토리보드 오랜만이라 잘 모르는거나 머 설명해주는거 적을라했는데

따로 적어놓을게 그렇게 있지가 않네,,,

'iOS 관련 공부' 카테고리의 다른 글

초기화 (initialization) - 1  (0) 2025.02.13
클래스와 구조체  (0) 2025.02.06
iOS Architecture / Framework  (0) 2025.02.02
열거형(Enumeration)  (1) 2025.02.01
스위프트의 컬렉션 관련  (0) 2025.01.31