iOS

Swift 10 - 주요 UI 기능 소개

Jihyeonnn 2024. 11. 13. 15:14

Page Controller이다. Page Control의 Pages 속성에서 하단의 점 개수를 조정할 수 있다.

//
//  ViewController.swift
//  PageControl
//
//  Created by Ho-Jeong Song on 2021/11/25.
//

import UIKit

// 이미지 파일 이름을 저장한 배열
var images = [ "01.png", "02.png", "03.png", "04.png", "05.png", "06.png" ]

class ViewController: UIViewController {
    
    // UI 요소: 이미지 뷰와 페이지 컨트롤을 연결하는 아울렛
    @IBOutlet var imgView: UIImageView!
    @IBOutlet var pageControl: UIPageControl!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // view가 로드된 후 실행되는 설정
        // 페이지 컨트롤의 페이지 수를 이미지 배열의 개수에 맞게 설정
        pageControl.numberOfPages = images.count
        
        // 페이지 컨트롤의 현재 페이지를 3으로 설정 (기본적으로 4번째 이미지)
        pageControl.currentPage = 3
        
        // 페이지 컨트롤의 페이지 인디케이터 색상 설정
        pageControl.pageIndicatorTintColor = UIColor.systemBlue // 기본 페이지 인디케이터 색상
        pageControl.currentPageIndicatorTintColor = UIColor.red // 현재 페이지 인디케이터 색상
        
        // 첫 번째 이미지를 이미지 뷰에 표시
        imgView.image = UIImage(named: images[0])
    }

    // 페이지 컨트롤의 페이지가 변경되었을 때 호출되는 액션 함수
    @IBAction func pageChange(_ sender: UIPageControl) {
        // 페이지가 변경되면 해당 페이지의 이미지를 이미지 뷰에 표시
        imgView.image = UIImage(named: images[pageControl.currentPage])
    }
    
}

 
 

Tab Bar이다.  탭 바는 여러 개의 탭으로 구성되며 각 탭은 사용자가 해당 탭을 선택했을 때의 화면을 나타낸다.

Navigation Controller이다. 여러 개의 화면을 스택 형태로 관리하여 사용자가 이전 화면으로 쉽게 돌아갈 수 있도록 한다.

Table Controller이다. 스크롤이나 업데이트 등의 기능이 있다.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    // 셀을 재사용 큐에서 가져오기
    let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath)

    // 셀의 텍스트 레이블에 데이터를 설정
    cell.textLabel?.text = items[(indexPath as NSIndexPath).row]

    // 셀의 이미지 뷰에 이미지를 설정
    cell.imageView?.image = UIImage(named: itemsImageFile[(indexPath as NSIndexPath).row])

    return cell
}

ViewController의 일부 소스인데, Swift의 주요 문법들이 잘 나타나 있으니 참고하자!
 

Audio Controller는  음악의 진행도를 나타낸다.
 

Vidio Controller는 동영상 재생과 관련된 UI이다. 화면이 작아지면 줄어들고, 커지면 늘어난다.

import UIKit
import AVKit

class ViewController: UIViewController {

    // 뷰가 로드될 때 호출되는 메서드
    override func viewDidLoad() {
        super.viewDidLoad()
        // 추가적인 설정이 필요한 경우 이곳에 작성
    }

    // 내부 동영상 파일(mp4)을 재생하는 버튼의 액션
    @IBAction func btnPlayInternalMovie(_ sender: UIButton) {
        // 앱 번들 내에 포함된 "FastTyping.mp4" 파일의 경로를 가져옴
        let filePath: String? = Bundle.main.path(forResource: "FastTyping", ofType: "mp4")
        
        // 파일 경로를 NSURL 객체로 변환
        let url = NSURL(fileURLWithPath: filePath!)
        
        // 변환된 URL을 사용하여 playVideo() 메서드를 호출
        playVideo(url: url)
    }
    
    // 외부 동영상 파일(mp4)을 재생하는 버튼의 액션
    @IBAction func btnPlayerExternalMovie(_ sender: UIButton) {
        // 외부 URL에서 mp4 파일의 경로를 지정 (예: Dropbox 링크)
        let url = NSURL(string: "https://dl.dropboxusercontent.com/s/e38auz050w2mvud/Fireworks.mp4")!

        // 외부 URL을 사용하여 playVideo() 메서드를 호출
        playVideo(url: url)
    }
    
    // 동영상 재생을 담당하는 메서드
    private func playVideo(url: NSURL) {
        // AVPlayerViewController 인스턴스를 생성 (동영상을 재생하는 뷰 컨트롤러)
        let playerController = AVPlayerViewController()
        
        // URL을 사용하여 AVPlayer 객체를 생성 (동영상 스트리밍을 처리하는 객체)
        let player = AVPlayer(url: url as URL)
        
        // AVPlayerViewController의 player 속성에 AVPlayer 객체를 설정
        playerController.player = player
        
        // AVPlayerViewController를 화면에 표시하고 애니메이션 효과를 주면서 보여줌
        self.present(playerController, animated: true) {
            // 동영상 재생 시작
            player.play()
        }
    }
}

 

카메라와 갤러리에 관한 앱이다.

화면에 그림을 그릴 수 있는 앱이다.
 

기능을 조금 더 개선해서 선의 색과 두께를 바꿀 수 있도록 한 앱이다.

화면을 스와이프하면 다음 사진이 보이도록 만든 앱이다.

핀치 제스쳐를 통해 사진을 축소/확대할 수 있도록 만든 앱이다. 마우스로는 Alt와 함께 클릭하면 테스트 가능하다.
 
출처: Smail Han의 iOS 프로그래밍 기초

Do it! 스위프트로 아이폰 앱 만들기 입문, 송호정, 이범근 저,이지스퍼블리싱, 2023년 01월 20일https://www.yes24.com/Product/Goods/116918114
https://github.com/doitswift/example

02 Hello World 앱 만들며 Xcode에 완벽 적응하기
03 원하는 이미지 화면에 출력하기 - 이미지 뷰
04 데이트 피커 사용해 날짜 선택하기
05 피커 뷰 사용해 원하는 항목 선택하기
06 얼럿 사용해 경고 표시하기
07 웹 뷰로 간단한 웹 브라우저 만들기
08 맵 뷰로 지도 나타내기
09 페이지 이동하기 - 페이지 컨트롤
10 탭 바 컨트롤러 이용해 여러 개의 뷰 넣기
11 내비게이션 컨트롤러 이용해 화면 전환하기
12 테이블 뷰 컨트롤러 이용해 할 일 목록 만들기
13 음악 재생하고 녹음하기
14 비디오 재생 앱 만들기
15 카메라와 포토 라이브러리에서 미디어 가져오기
16 코어 그래픽스로 화면에 그림 그리기
17 탭과 터치 사용해 스케치 앱 만들기
18 스와이프 제스처 사용하기
19 핀치 제스처 사용해 사진을 확대/축소하기