728x90 SMALL UIKIT149 공공 API를 통해 데이터 불러오기 (TMDB) 구현 내용TMDB 라는 영화 사이트 내에서 제공하는 API를 통해 외부 데이터를 갖고 왔다. 구현 코드APICaller.swift 라는 클래스 생성한다.import Foundationstruct Constants { static let API_KEY = "개인 API_KEY" static let baseURL = "https://api.themoviedb.org"}enum APIError: Error { case failedtogetData}class APICaller { static let shared = APICaller() func getTrendingMovies(completion: @escaping (Result) -> Void) { .. 2024. 7. 4. 스크롤해서 화면을 내릴 때, 네비게이션 타이틀이 같이 올라가게 하기 구현 내용스크롤해서 화면을 내릴 때 네비게이션 부분을 안보이게 한다. (테이블 뷰에 밀려 올라가게 한다.) 구현 코드extension ~ 부분에 넣었다스크롤 뷰가 스크롤될 때마다 호출되며, 네비게이션 바를 스크롤에 따라 숨기거나 보이게 하는 효과를 준다.// 스크롤 뷰가 스크롤될 때마다 호출되는 델리게이트 메서드이다.func scrollViewDidScroll(_ scrollView: UIScrollView) { // 화면 상단의 안전 영역(주로 상태 바와 노치 영역)의 높이를 가져오는데, // 이는 기기마다 다를 수 있으며, 네비게이션 바의 기본 위치를 결정하는데 사용된다. let defaultOffset = view.safeAreaInsets.top // 현재 스크롤 뷰의 수직.. 2024. 7. 3. 네비게이션 바 버튼에 이미지의 사이즈를 조절하는 방법 구현 내용넷플릭스의 로고의 사이즈가 너무 커서 화면에 왼쪽으로 오는게 아니라 중앙에 온다. 이를 해결하기 위해 이미지 사이즈를 임의의로 줄여서 적용했다. 구현 코드 수정 전 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) // 시스템 버.. 2024. 7. 3. category 누르면 그에 맞는 데이터를 테이블뷰에 보여주기 🟧 카테고리 생성https://explorer89.tistory.com/99 category 표현하기구현 내용카테고리 내의 부분을 누르면 눌린 카테고리 색은 진하게 변하고, 그 밑에 밑줄이 생긴다. 카테고리 부분은 컬렉션 뷰로 구현되어 있다. 구현 방법1. categoryCell.swift 파일을 생성한다.explorer89.tistory.com 구현 내용각 카테고리를 누르면, 해당 카테고리 문구가 테이블뷰에 보여지게 한다. 구현 순서 1. HomeViewController.swift 파일 내에 데이터를 저장할 배열을 생성한다. class HomeViewController: UIViewController { // MARK: Variables var randomImages: [UI.. 2024. 7. 3. 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 .. 2024. 7. 2. 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.. 2024. 7. 2. navigation Title의 위치를 왼쪽으로 옮기는 방법? 아래와 같이 버튼으로 하면? 왼쪽으로 옮길 수 있다. let label = UILabel()label.textColor = UIColor.labellabel.font = .systemFont(ofSize: 20, weight: .bold)label.text = "오늘은 여기 가볼까?"self.navigationItem.leftBarButtonItem = UIBarButtonItem.init(customView: label) 아래와 같이 작성하면 가운데로 온다...navigationItem.title = "오늘은 여기 가볼까?" 2024. 6. 30. Custom TabBar 설정 오토레이아웃을 통해 플로팅? 약간 떠 있는 탭바를 만들어봤다. CustomTabBar.swift import UIKitclass CustomTabBar: UIView { // MARK: UI Components // 버튼을 담을 스택뷰 생성 private let stackView: UIStackView = { let stack = UIStackView() stack.axis = .horizontal stack.distribution = .equalSpacing stack.alignment = .center stack.backgroundColor = .systemBackground stack.layer.. 2024. 6. 29. 컬렉션 뷰 설정 먼저 테이블 뷰 생성 // MARK: - UI Components private let attractionTableView: UITableView = { let tableView = UITableView(frame: .zero, style: .grouped) tableView.register(CollectionViewTableViewCell.self, forCellReuseIdentifier: CollectionViewTableViewCell.identifier) return tableView }() 제약 조건 및 뷰에 넣기 // MARK: - Life Cycle override func viewDidLoad() { super.vi.. 2024. 6. 26. 카카오톡 로그인 API 구현 카카오톡 로그인 API 설정 https://developers.kakao.com/docs/latest/ko/kakaologin/common Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 기본 설정은 위의 사이트에 들어가서 한다. 그 외의 파일은 아래 코드를 구현한다. AppDelegate.swift 코드 구현 import UIKitimport CoreDataimport KakaoSDKCommonimport KakaoSDKAuth@mainclass AppDelegate: UIResponder, UIApplicationDelegate { .. 2024. 5. 23. CollectionView 만들기 (코드로 구현) https://developer.apple.com/documentation/uikit/views_and_controls/collection_views Collection views | Apple Developer Documentation Display nested views using a configurable and highly customizable layout. developer.apple.com https://developer.apple.com/documentation/uikit/uicollectionview UICollectionView | Apple Developer Documentation An object that manages an ordered collection of data item.. 2024. 2. 25. 네비게이션 바에 배경 색상 넣기.... 아래 처럼 나와야 하는데.. 이거 하느라 엄청 뻘짓했다.. 아래 보면 스크롤하면 글자가 작아지고 커지고하면서 배경색이 그대로지만 func setupNavigationTitle() { self.navigationItem.title = "Home Controller" let appearance = UINavigationBarAppearance() appearance.backgroundColor = .systemIndigo navigationController?.navigationBar.standardAppearance = appearance navigationController?.navigationBar.scrollEdgeAppearance = appearance /* 그냥 navigationBar.barT.. 2024. 2. 20. 탭 제스처 + 사진 선택 먼저 피커뷰 델리게이트 설정 //MARK: - 피커뷰 델리게이트 설정 extension DetailViewController: PHPickerViewControllerDelegate { // 사진이 선택이 된 후에 호출되는 메서드 func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { // 피커뷰 dismiss picker.dismiss(animated: true) let itemProvider = results.first?.itemProvider if let itemProvider = itemProvider, itemProvider.canLoadObject(ofClass: UIImage.self.. 2024. 2. 2. 알림창 안에 맵 넣기 먼저 UIViewController 타입의 "MapAlertViewController" 파일 생성 및 메인 스토리보드의 class로 설정 "MapAlertViewController" 파일 내에 버튼 추가 import UIKit class MapAlertViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 버튼 생성 let alertBtn = UIButton(type: .system) // 버튼 속성 설정 alertBtn.frame = CGRect(x: 0, y: 150, width: 100, height: 30) alertBtn.center.x = self.view.frame.width / 2 aler.. 2024. 2. 1. 알림창 https://developer.apple.com/documentation/uikit/windows_and_screens/getting_the_user_s_attention_with_alerts_and_action_sheets Getting the user’s attention with alerts and action sheets | Apple Developer Documentation Present important information to the user or prompt the user about an important choice. developer.apple.com 기본 알림창 버튼 생성 import UIKit class ViewController: UIViewController { overr.. 2024. 2. 1. 이전 1 ··· 6 7 8 9 10 다음 728x90 LIST