해결된 질문
작성
·
83
·
수정됨
0
안녕하세요! 다름이 아니라 강의 자료를 모아보는 앱을 하나 만드려고 하는 상황입니다
이 앱을 만들기 위해 애구마님 강의도 열심히 들을 예정입니다ㅎㅎ
예를 들어 1강부터~ 12강까지 강의가 있고 각각 pdf나 ppt 등의 강의 자료가 있다고 가정했을 때
스위프트UI의 List 기능을 이용해서 리스트로 만들어 자료를 쉽게 찾아볼 수 있도록 만들고 싶습니다
다만 지금 막힌 부분이 일단 List의 각각의 제목을 작성해줘야 하는데 제목을 파일명에서 긁어오고 싶습니다
그리고 막힌 부분이 하나 더 있는데 파일을 불러오는 코드를 작성하고 싶은데 잘 모르겠습니다 구글링을 해보니까 PDFKIT이라는 라이브러리가 있는 것 같은데 제가 자료를 못 찾은 건지 UIKIT으로 작성된 예제 코드들 뿐이어서 파일 불러오기부터 막힌 상황입니다...! 혹시 괜찮으시다면 번거로우시겠지만 도와주실 수 있으실까요??
구현하고자 하는 앱의 구조는 대강 아래와 같습니다
일단 앱을 설치하면 아이폰이나 아이패드 내부에 해당 앱에서 볼 강의 자료 파일들을 담을 폴더가 자동으로 생성
각각의 강의 자료들을 폴더로 옮김
폴더에 파일이 들어올 때마다 순서대로 List에 추가(파일 이름에 1강 or 1. 등 순서를 구분할 수 있는 인덱스를 포함할 예정)
실제로 뷰에서 보이는 List의 각각의 이름들은 파일 이름을 그대로 긁어오고 싶음
이 정도입니다..! 아 참고로 아주 기본적인 내용 뿐이지만 Text 뷰나 Button, (V, H, Z)Stack 등 아주 아주 기본적인 내용은 이해하고 있는 상황입니다 ㅎㅎ
아직 강의를 초반까지 밖에 듣지 않았지만 굉장히 쉽게 설명해주시려고 노력하는 부분이 저 같은 초심자에게는 굉장히 크게 와닿는 것 같습니다 남은 강의도 열공 해보겠습니다 좋은 하루 보내세요! 감사합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
스위프트UI를 사용하여 강의 자료를 모아보는 앱을 만드는 프로젝트는 매우 흥미로운 프로젝트로 보입니다. 파일 명을 긁어오는 부분과 PDF 파일을 불러오는 코드 작성에 대해 막혀 계신다고 하셨군요.
스위프트UI에서 List
를 사용하여 파일 명을 동적으로 불러와 표시하는 방법과 PDFKit
를 활용하는 기본적인 방법을 설명드리겠습니다.
파일 명 불러오기:
FileManager
를 사용하여 해당 디렉토리의 파일 목록을 가져올 수 있습니다.let fileManager = FileManager.default
do {
let documentsURL = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let files = try fileManager.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil)
// files 배열을 사용하여 List에 표시
} catch {
print(error)
}
이 배열을 List
에 바인딩하여 파일명을 표시할 수 있습니다.
PDF 파일 불러오기:
PDFKit
라이브러리를 사용하여 PDF 파일을 불러오고 표시할 수 있습니다. 먼저, PDFKit
을 프로젝트에 임포트한 후, PDFView
를 사용하여 PDF 파일을 렌더링할 수 있습니다.”`swift
import PDFKit
let pdfView = PDFView()
if let documentURL = Bundle.main.url(forResource: “sample”, withExtension: “pdf”),
let document = PDFDocument(url: documentURL) {
pdfView.document = document
}
“
위 방법으로 PDF 파일을 불러와 보여줄 수 있습니다.
PDFView는 UIKit 컴포넌트이므로 스위프트UI에서 사용하기 위해서는
UIViewRepresentable` 프로토콜을 적용한 래퍼 뷰를 만들어 사용해야 합니다.
이 설명이 프로젝트 진행에 도움이 되길 바랍니다. 강의 수강을 통해 더 많은 지식을 습득하시길 바라며, 프로젝트 성공적으로 완성하시길 응원하겠습니다. 좋은 하루 보내세요!