iOS/UIKIT 86

UISheetPresentation을 통해 수정, 삭제, 닫기 버튼 기능 구현

UISheetPresentationController를 사용하면 하단에서 올라오는 시트 스타일의 모달을 손쉽게 구현할 수 있습니다. UISheetPresentationController는 iOS 15 이상에서 사용할 수 있는 API로, detents를 통해 시트의 높이를 조절하고, 사용자가 원하는 높이에서 스크롤 가능하게 만드는 등 다양한 설정을 제공합니다.  1. ProfileFeedEditViewController 만들기먼저, "수정," "삭제," "닫기" 버튼이 포함된 ProfileFeedEditViewController를 만듭니다.import UIKitclass ProfileFeedEditViewController: UIViewController { // MARK: - Variable..

iOS/UIKIT 08:28:49

FileManager 사용방법 - 수정

https://explorer89.tistory.com/217 FileManager 사용하는 기본 방법 (이미지를 경로로 저장하여 코어 데이터에 가져다 사용하기)1단계: 파일 경로 설정하기파일을 저장하거나 불러오기 위해 기본적으로 앱의 Documents Directory 경로를 설정합니다. 이 경로는 파일을 영구적으로 저장할 위치를 지정합니다.import Foundation// FileManagexplorer89.tistory.com  이전에 작성했던 FileManager 사용방법에서 수정할 내용이 있습니다.  이미지를 저장할 때, feedID를 사용하고, 피드 자체를 저장할 때도 feedID를 사용하여 혼용이 있었습니다. 그래서 발생한 문제가, 코어 데이터에 삭제 기능을 추가했음에도 테이블뷰에서는 삭제..

iOS/UIKIT 2024.11.14

FileManager 사용하는 기본 방법 (이미지를 경로로 저장하여 코어 데이터에 가져다 사용하기)

1단계: 파일 경로 설정하기파일을 저장하거나 불러오기 위해 기본적으로 앱의 Documents Directory 경로를 설정합니다. 이 경로는 파일을 영구적으로 저장할 위치를 지정합니다.import Foundation// FileManager 기본 설정let fileManager = FileManager.defaultlet documentsDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first! documentsDirectory는 사용자의 앱 데이터가 저장되는 기본 경로입니다. 이곳에 이미지를 저장하거나, 저장된 이미지 파일을 불러올 때 경로로 활용할 수 있습니다.  2단계: 폴더 만들기 (필요시)파일을 관리하기 쉽게..

iOS/UIKIT 2024.11.13

iOS 앱에서 네트워크 통신을 하는 방법에는 어떤 것들이 있나요?

iOS 앱에서 네트워크 통신을 하는 방법은 주로 URLSession, 서드파티 라이브러리, Combine과 Swift Concurrency 등을 사용하는 방식이 있습니다. 이들은 HTTP 요청을 통해 데이터를 주고받거나 API 서버와의 통신을 가능하게 해 주며, 각 방법은 용도와 개발 요구사항에 따라 선택할 수 있습니다.  1. URLSessionURLSession은 iOS에서 네트워크 요청을 관리하는 기본 API로, HTTP/HTTPS 요청을 보내고 응답을 받을 수 있게 해줍니다. 비동기 요청, 파일 다운로드, 업로드 등을 처리할 수 있으며, URLSession은 주로 API 호출, 파일 다운로드, 이미지 로드 등에 사용됩니다.import Foundationlet url = URL(string: "ht..

iOS/UIKIT 2024.11.11

UIImage와 UIImageView의 차이

UIImage와 UIImageView는 둘 다 UIKit에서 이미지를 다루는 클래스이지만, 각각 역할이 다릅니다:UIImage:이미지 데이터 자체를 저장하는 객체입니다.보통 파일이나 URL 등에서 이미지를 로드할 때 사용합니다.이미지를 표시하거나 저장, 편집하는 등 다양한 용도로 사용할 수 있지만, 화면에 직접적으로 표시하는 기능은 없습니다.예: UIImage(named: "imageName")는 해당 파일 이름을 가진 이미지를 로드해서 UIImage 객체로 반환합니다.UIImageView:UIView를 상속받은 클래스로, 이미지를 화면에 표시하는 데 사용됩니다.UIImageView는 UIImage를 포함할 수 있으며, 이를 통해 이미지가 화면에 렌더링됩니다.다양한 속성을 이용해 이미지의 표시 방식(예:..

iOS/UIKIT 2024.11.10

갤러리에서 선택한 내용을 컬렉션 뷰에 보이는 방법

구현 목표 selectedImages를 PhotoAddCell의 CollectionView에 전달하려면, 다음 단계를 통해 이미지를 효율적으로 관리할 수 있습니다.  FeedViewController에 selectedImages 배열 저장FeedViewController에서 selectedImages 배열을 속성으로 만들어서, 다른 곳에서도 사용할 수 있도록 설정합니다.PhotoAddCellDelegate 프로토콜 설정PhotoAddCell에 이미지를 전달하려면, FeedViewController가 PhotoAddCell의 델리게이트로 동작하도록 설정합니다. 이를 통해 이미지 선택 시 FeedViewController에 전달된 이미지를 PhotoAddCell에 업데이트할 수 있습니다.이미지 배열 전달 및..

iOS/UIKIT 2024.11.08

테이블뷰의 셀을 누르면 Sheet가 올라오게 하는 방법 (feat. UISheetPresentationController)

구현 목표 테이블뷰의 셀을 누르면 모달 형태의 sheet가 올라옵니다. 올라온 sheet를 보면 각 카테고리를 보여줍니다. 각 카테고리를 누르면 눌린 카테고리는 배경색과 글자 색이 변경됩니다. 선택완료 버튼을 누르면 sheet가 내려가고 테이블뷰의 셀에 선택된 카테고리가 표시됩니다. 🔥 카테고리 목록을 표시하는 방식  UIStackView 사용:UIStackView는 고정된 아이템 수를 표시할 때 간단하게 사용할 수 있습니다.이미지처럼 아이템이 고정되어 있고, 레이아웃이 바뀌지 않는다면 UIStackView를 사용해 각 카테고리를 레이블로 추가할 수 있습니다.그러나 화면 크기에 따라 자동으로 줄바꿈을 하거나, 동적으로 아이템 수가 변할 경우 레이아웃 조정이 어렵습니다.UICollectionView 사용..

iOS/UIKIT 2024.11.07

UILabel 에서 패딩 효과를 주고 싶다면?

UILabel은 기본적으로 내부 텍스트에 패딩을 줄 수 있는 기능이 없습니다. 하지만 패딩을 넣고 싶은 경우 다음과 같은 두 가지 방법으로 구현할 수 있습니다:1. UILabel을 서브클래싱하여 패딩 추가하기UILabel의 서브클래스를 생성하여 textInsets를 설정하면 패딩을 직접 추가할 수 있습니다.class PaddedLabel: UILabel { var textInsets = UIEdgeInsets(top: 4, left: 8, bottom: 4, right: 8) // 원하는 패딩 override func drawText(in rect: CGRect) { super.drawText(in: rect.inset(by: textInsets)) } overr..

iOS/UIKIT 2024.10.30

검색한 결과에서 중복된 데이터 통합하기

1페이지 당 10개의 데이터를 가져옵니다. 가져온 데이터를 카테고리별로 구분합니다. 카테고리 별 표시할 수 있는 데이터 수는 최대 3개입니다. 이때, 페이지 당 10개의 데이터 중에서 카테고리 별로 구분했을 때 1개 또는 2개 일 경우는 그 다음 페이지로 넘어갑니다. 넘어간 다음 페이지에서 카테고리 별로 데이터를 구분하여 누적하여 관리합니다. 이때, 페이지 내 또는 페이지 간의 중복된 데이터를 통합할 필요가 있습니다. (통합 또는 관리)페이지 단위로 검색 결과를 가져오면서 중복된 데이터를 제거하고, 각 contentTypeId별로 최소 3개의 항목을 확보하는 방식으로 구현해보겠습니다.  주요 구조uniqueContentIds (Set): 중복된 데이터를 체크하기 위해 contentId만 저장하는 Set입..

iOS/UIKIT 2024.10.30