iOS 152

스크롤해서 화면을 내릴 때, 네비게이션 타이틀이 같이 올라가게 하기

구현 내용스크롤해서 화면을 내릴 때 네비게이션 부분을 안보이게 한다. (테이블 뷰에 밀려 올라가게 한다.) 구현 코드extension ~ 부분에 넣었다스크롤 뷰가 스크롤될 때마다 호출되며, 네비게이션 바를 스크롤에 따라 숨기거나 보이게 하는 효과를 준다.// 스크롤 뷰가 스크롤될 때마다 호출되는 델리게이트 메서드이다.func scrollViewDidScroll(_ scrollView: UIScrollView) { // 화면 상단의 안전 영역(주로 상태 바와 노치 영역)의 높이를 가져오는데, // 이는 기기마다 다를 수 있으며, 네비게이션 바의 기본 위치를 결정하는데 사용된다. let defaultOffset = view.safeAreaInsets.top // 현재 스크롤 뷰의 수직..

iOS/UIKIT 2024.07.03

네비게이션 바 버튼에 이미지의 사이즈를 조절하는 방법

구현 내용넷플릭스의 로고의 사이즈가 너무 커서 화면에 왼쪽으로 오는게 아니라 중앙에 온다. 이를 해결하기 위해 이미지 사이즈를 임의의로 줄여서 적용했다.  구현 코드 수정 전 var image = UIImage(named: "logo.png")image = image?.withRenderingMode(.alwaysOriginal)navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: nil) 수정 후 let originalImage = UIImage(named: "logo.png")let scaledSize = CGSize(width: 25, height: 25) // 시스템 버..

iOS/UIKIT 2024.07.03

category 누르면 그에 맞는 데이터를 테이블뷰에 보여주기

🟧 카테고리 생성https://explorer89.tistory.com/99 category 표현하기구현 내용카테고리 내의 부분을 누르면 눌린 카테고리 색은 진하게 변하고, 그 밑에 밑줄이 생긴다. 카테고리 부분은 컬렉션 뷰로 구현되어 있다.  구현 방법1. categoryCell.swift 파일을 생성한다.explorer89.tistory.com  구현 내용각 카테고리를 누르면, 해당 카테고리 문구가 테이블뷰에 보여지게 한다.  구현 순서 1. HomeViewController.swift 파일 내에 데이터를 저장할 배열을 생성한다. class HomeViewController: UIViewController { // MARK: Variables var randomImages: [UI..

iOS/UIKIT 2024.07.03

category 표현하기

구현 내용카테고리 내의 부분을 누르면 눌린 카테고리 색은 진하게 변하고, 그 밑에 밑줄이 생긴다. 카테고리 부분은 컬렉션 뷰로 구현되어 있다.  구현 방법1. categoryCell.swift 파일을 생성한다. import UIKitclass CategoryCell: UICollectionViewCell { // MARK: - Variables static let identifier = "CategoryCell" // MARK: - UI Components private let titleLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints ..

iOS/UIKIT 2024.07.02

collectionView, pageControl 사용

구현 내용이미지를 가로 방향으로 스크롤하면 넘어가게 한다. 이때, 이미지 밑에 "점"표시를 통해 이미지 갯수 및 넘어가는 표시를 한다.  구현 방법1. 먼저 CollectionView를 생성한다. private lazy var randomPlaceCollectionView: UICollectionView = { let layout = UICollectionViewFlowLayout() layout.scrollDirection = .horizontal layout.minimumLineSpacing = 0 layout.minimumInteritemSpacing = 0 let collectionView = UICollectionView(frame: .zero, collectionVi..

iOS/UIKIT 2024.07.02

ObservableObject와 @Published

개체가 변경되기 전에 내보내는 게시자가 있는 개체 형식이다.?  @Published와 ObservableObject는 스위프트의 Combine 프레임워크에서 사용되는 속성 래퍼와 프로토콜이다.  ✅ 주로 SwiftUI와 함꼐 사용되어 상태 관리를 쉽게 하고, 데이터 변경 시 UI가 자동으로 업데이트 되도록 한다.   🟥 @Published ObservableObject에 속하는 프로퍼티가 변경될 때마다 자동으로 변경 사항을 알리는 역할을 한다. 이를 통해, 프로퍼티를 구독(Subscribe)하고 있는 UI 컴포넌트들이 자동으로 업데이트 된다.   🟥 ObservableObject Combine 프레임워크의 프로토콜로, 객체가 변경될 수 있음을 나타낸다.이 프로토콜을 준수하는 클래스는 프로퍼티가 변경될..

iOS/Swift 2024.06.03

Combine (MVVM 패턴)

Combine | Apple Developer Documentation Combine | Apple Developer DocumentationCustomize handling of asynchronous events by combining event-processing operators.developer.apple.com  🟥 Combine 이란? 이벤트를 처리하는 operators들을 결합함으로써 비동기 이벤트들을 커스텀하게 다룬다. Combine을 사용하면 비동기 작업과 데이터 흐름을 선언적으로 작성할 수 있으며, 특히 비동기 이벤트와 데이터 스트림을 처리하는 데 매우 유용하다. 🟥 핵심 개념Publisher:Publisher는 이벤트를 발행하는 객체이다Publisher는 데이터를 제공하고, 구..

iOS/Swift 2024.05.30