본문 바로가기

iOS

iOS_week9

본격 App 만들기 위한 기초 공부

playground로 Swift 문법 공부, history를 표시해서 값이 출력되는 과정을 볼 수 있음

shift comand enter로 바뀐 ui 적용

 

Bundel ID: 이 앱의 이름이다. 앱의 식별자

 

Minimum Deployment 는 최소 사양

Portrait은 세로로 나타낼 것인지, LandScape Left,Right는 오른쪽, 왼쪽으로 눕혔을 때 화면이 반응하도록 설정

변수를 IBOutlet이라 하고, 함수를 IBAction 이라함

 

text는 옵셔널 String. 일반 문자열과 연결해서 사용하려면 강제언래핑 해야함

//
//  ViewController.swift
//  yooHello
//
//  Created by Induk cs5 on 2025/10/27.
//

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var lblHello: UILabel! //@는 at sign
    @IBOutlet weak var txtName: UITextField!
    //초기값을 nil로 지정했지만, 반드시 값이 있을거라고 가정하고 !옵셔널로 선언
    
    @IBAction func btnSend(_ sender: UIButton) {
        //Touch up Inside 액션: 버튼 눌렀다가 뗄때 동작
        lblHello.text="Hello, " + txtName.text! //text는 Optional String형
        // 일반 String과 옵셔널 타입인 text는 연결이 불가. 언래핑해야함
        //lblHello.text=txtName.text ! 옵셔널이라 값이 있다고 가정.
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
}

 

실행 후 콘솔에서 결과보기

 

 

label 이름 연결이 되지 않아서 발생한 오류

 

entrypoint 다시 설정

 

AppICON 설정

 

이미지뷰에 사진 넣기

앱이 실행되기 전에 잠깐 보여주는 화면이 LaunchScreen

 

전체적인 관계

assets : 사진 넣을때 사용

tag 추가

 

추가실습- 초기화 버튼 만들기

//
//  ViewController.swift
//  yooHello
//
//  Created by Induk cs5 on 2025/10/27.
//

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var lblHello1: UILabel! //@는 at sign
    @IBOutlet weak var txtName: UITextField!
    //초기값을 nil로 지정했지만, 반드시 값이 있을거라고 가정하고 !옵셔널로 선언
    
    @IBAction func ini(_ sender: UIButton) {
        lblHello1.text="안녕하세요"
        txtName.text=""
    }
    @IBAction func btnSend(_ sender: UIButton) {
        //Touch up Inside 액션: 버튼 눌렀다가 뗄때 동작
        lblHello1.backgroundColor = .red //버튼 누르면 텍스트 배경 변경
        lblHello1.textColor = .blue // 버튼 누르면 텍스트 색깔 변경
        lblHello1.text="Hello, " + txtName.text! //text는 Optional String형
        // 일반 String과 옵셔널 타입인 text는 연결이 불가. 언래핑해야함
        // 연산자를 사용하기 위해서는 계산하는 변수들의 자료형이 같아야함.
        // txtName은 UITextField라 .text로 string형으로 변경 -> 그 변경한게 옵셔널 스트링형이라 강제언래핑 필요
        //lblHello.text=txtName.text ! 옵셔널이라 값이 있다고 가정.
        //print(lblHello.text,txtName.text)
        //print(sender)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
}

 

UpDown-실습

앱 아이콘

 

LaunchScreen 과 메인 실행화면

//
//  ViewController.swift
//  UpDownYoo
//
//  Created by Induk cs5 on 2025/10/27.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var lblNumber: UILabel!
    var x = 0

    @IBAction func btnUp(_ sender: UIButton) {
        x=x+1
        lblNumber.text = String(x)
    }
    
    @IBAction func btnDown(_ sender: UIButton) {
        x=x-1
        lblNumber.text = String(x)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

controller 코드

'iOS' 카테고리의 다른 글

iOS_week12  (0) 2025.11.17
iOS_week10  (0) 2025.11.03
iOS_week6  (0) 2025.10.13
iOS_week5  (0) 2025.09.29
iOS_week4  (0) 2025.09.22