241031 iOS프로그래밍기초 9주차

2024. 10. 31. 16:47·iOS프로그래밍 (2학년 2학기)

새로운 프로젝트를 생성

기본 소스만 써져있던 것을 chatgpt를 이용하여 일정 시간이 지나면 배경색이 바뀌도록 만든 소스

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var iabel: UILabel!
    @IBOutlet weak var name: UITextField!
    
    var timer: Timer?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // 타이머 시작
        startColorChangeTimer()
    }
    
    @IBAction func buttonsend(_ sender: UIButton) {
        iabel.text = "Hello, " + (name.text ?? "")
    }
    
    func startColorChangeTimer() {
        timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(changeBackgroundColor), userInfo: nil, repeats: true)
    }
    
    @objc func changeBackgroundColor() {
        // 랜덤한 색상 생성
        let randomRed = CGFloat(arc4random()) / CGFloat(UINT32_MAX)
        let randomGreen = CGFloat(arc4random()) / CGFloat(UINT32_MAX)
        let randomBlue = CGFloat(arc4random()) / CGFloat(UINT32_MAX)
        
        // 배경색 변경
        self.view.backgroundColor = UIColor(red: randomRed, green: randomGreen, blue: randomBlue, alpha: 1.0)
    }
    
    deinit {
        // 타이머 해제
        timer?.invalidate()
    }
}

 

 

이전 주차에서 했던 내용은 제외하고 작성

 

print(sender)라고 작성 후, sender가 저장하고 있는 내용 확인하기

아래 실행창에 뜨는 코드가 sender가

리셋 버튼을 클릭하면 초기값으로 바뀌는 소스 추가

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var lblHello: UILabel!
    @IBOutlet weak var txtName: UITextField!
    
    @IBAction func btnSend(_ sender: UIButton) {
        lblHello.text = "안녕, " + txtName.text!
        // print(sender)
        // print(lblHello.text, txtName.text)
    }
    
    @IBAction func resetBtn(_ sender: UIButton) {
        lblHello.text = "안녕하세요?"
        txtName.text = ""
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

lblNumber, btnUp, btnDown 추가하여 UpDown 앱 만들기

import UIKit

class ViewController: UIViewController {
    var x = 0
    
    @IBOutlet weak var lblNumber: UILabel!
    @IBOutlet weak var lblHello: UILabel!
    @IBOutlet weak var txtName: UITextField!
    @IBAction func btnSend(_ sender: UIButton) {
        lblHello.text = "안녕, " + txtName.text!
        // print(sender)
        // print(lblHello.text, txtName.text)
    }
    @IBAction func resetBtn(_ sender: UIButton) {
        lblHello.text = "안녕하세요?"
        txtName.text = ""
    }
    @IBAction func btnUp(_ sender: UIButton) {
        x = x + 1
        lblNumber.text = String(x)
        // lblNumber.text = x  불가! 기존 : int형
    }
    @IBAction func btnDown(_ sender: UIButton) {
        x = x - 1
        lblNumber.text = String(x)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

03 원하는 이미지 화면에 출력하기 - 이미지 뷰

  • 확대 / 축소버튼과 토글을 활용하여 전구를 껐다 켤 수 있다.


04 데이트 피커 사용해 날짜 선택하기

  • 상단에는 현재 시간이 나오고, 하단에는 선택한 시간이 나오는 예제

05 피커 뷰 사용해 원하는 항목 선택하기

  • 마우스를 드래그하여 원하는 사진을 떠오르게 할 수 있다.


06 얼럿 사용해 경고 표시하기

  • 켜기/끄기/제거 버튼을 클릭하면 alert창이 뜬다.


07 웹 뷰로 간단한 웹 브라우저 만들기

  • ViewController를 통해 수정하여 자신의 블로그 주소로 바꾸고 실행하기


08 맵 뷰로 지도 나타내기
09 페이지 이동하기 - 페이지 컨트롤
10 탭 바 컨트롤러 이용해 여러 개의 뷰 넣기
11 내비게이션 컨트롤러 이용해 화면 전환하기
12 테이블 뷰 컨트롤러 이용해 할 일 목록 만들기
13 음악 재생하고 녹음하기
14 비디오 재생 앱 만들기
15 카메라와 포토 라이브러리에서 미디어 가져오기
16 코어 그래픽스로 화면에 그림 그리기
17 탭과 터치 사용해 스케치 앱 만들기
18 스와이프 제스처 사용하기
19 핀치 제스처 사용해 사진을 확대/축소하기

 

 

 

 

참고자료 :

  • 한성현 교수님 수업자료
  • Do it! 스위프트로 아이폰 앱 만들기 입문, 송호정, 이범근 저,이지스퍼블리싱, 2023년 01월 20일
  • https://www.yes24.com/Product/Goods/116918114
  • https://github.com/doitswift/example
저작자표시 (새창열림)

'iOS프로그래밍 (2학년 2학기)' 카테고리의 다른 글

241121 iOS프로그래밍기초 12주차  (0) 2024.11.21
241114 iOS프로그래밍기초 11주차  (0) 2024.11.14
241017 iOS프로그래밍기초 7주차  (1) 2024.10.17
241009 iOS프로그래밍기초 6주차  (1) 2024.10.14
241002 iOS프로그래밍기초 5주차  (2) 2024.10.14
'iOS프로그래밍 (2학년 2학기)' 카테고리의 다른 글
  • 241121 iOS프로그래밍기초 12주차
  • 241114 iOS프로그래밍기초 11주차
  • 241017 iOS프로그래밍기초 7주차
  • 241009 iOS프로그래밍기초 6주차
Z2AE
Z2AE
  • Z2AE
    딩코.log
    Z2AE
  • 전체
    오늘
    어제
    • 분류 전체보기 (67)
      • C++ 프로그래밍 (1학년 2학기) (12)
      • 서버프로그래밍 (1학년 2학기) (0)
      • C# 프로그래밍 (1학년 2학기) (2)
      • 프론트엔드 웹개발 (1학년 2학기) (2)
      • 데이터베이스 (2학년 1학기) (8)
      • 자료구조 (2학년 1학기) (2)
      • JAVA프로그래밍 (2학년 1학기) (7)
      • PHP쇼핑몰실무 (2학년 1학기) (2)
      • 운영체제 (2학년 1학기) (3)
      • 모바일게임개발 (2학년 1학기) (1)
      • iOS프로그래밍 (2학년 2학기) (11)
      • 네트워크보안 (2학년 2학기) (1)
      • iOS프로그래밍실무 (3학년 1학기) (11)
      • 소프트웨어설계 (3학년 1학기) (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Z2AE
241031 iOS프로그래밍기초 9주차
상단으로

티스토리툴바