Core Data 에 대해서 Core Data 는 iOS 기본 프레임워크이다. UserDefaults 는 app setting 같은 간단한 정보를 저장하기에 적합하다면 Core Data 는 복잡하고 큰 user data 를 저장하기에 적합하다. 예를 들어 내 아이폰 내에서의 검색 기록과 같이 시간과 키워드에 해당하는 정보를 저장하기에 UserDefaults 보다 적합할 수 있다. 'Core Data 는 Database 인가?' 아니다. 데이터를 유지하기 위한 API 도 아니다. 객체 그래프를 관리하는 Framework 이다. 이 객체 그래프를 디스크에 저장하여 Persistence 기능을 이용할 수 있는 것이다. 보통 영구적으로 저장하기 위해서 Core Data 를 사용하는데 Persist..
UICollectionView cell 왼쪽정렬 1.다음과 같은 스위프트 파일을 만듭니다. import Foundation import UIKit class LeftAlignedCollectionViewFlowLayout: UICollectionViewFlowLayout { override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? { let attributes = super.layoutAttributesForElements(in: rect) var leftMargin = sectionInset.left var maxY: CGFloat = -1.0 attributes?.forEach { l..
delegate 에 여러개의 컬렉션뷰를 연결하기 컬렉션뷰를 구분해서 각각 다르게 설정해주고 싶었다. 총 두가지 방법이 있다. collectionView == ... 과 같이 내가 원하는 뷰일때 라는 조건문을 사용한다. func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { if collectionView == bandCollectionView { guard let bandCell = bandCollectionView.dequeueReusableCell(withReuseIdentifier: "BandCollectionViewCell", for: inde..
UIButton 코드로 짜기 let bookBtn = UIButton() //title bookBtn.setTitle("예매율순", for: .normal) //title color bookBtn.setTitleColor(.black, for: .normal) //title fontsize bookBtn.titleLabel?.font = UIFont.systemFont(ofSize: 12) //imageview image bookBtn.setImage(UIImage(systemName: "circle.fill"), for: .normal) //imageview image size bookBtn.setPreferredSymbolConfiguration(.init(pointSize: 3, weight: .r..
convert UIColor to String DB 에 색을 저장하려고 하니까 String 으로 변환해줄 필요가 생겼다. import Foundation import UIKit extension UIColor { convenience init(hex: String, alpha: CGFloat = 1.0) { var hexFormatted: String = hex.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines).uppercased() if hexFormatted.hasPrefix("#") { hexFormatted = String(hexFormatted.dropFirst()) } assert(hexFormatted.count == 6, "Inval..
Cell 꾹 눌러서 미리보기 만들기 - context menu 만들기 사용방법 UITableViewDelegate 의 메서드를 이용하면 된다. func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? { //code } 문제 previewProvider 파라미터에 그냥 뷰컨을 넣었더니 다음과 같은 오류가 발생했다. 그래서 개발자 문서에서 previewProvider를 찾아보았다. void 로 들어가서 UIViewController 로 리턴하는 클로저를 넘겨주어야했다. 해결 방법1 previewProvider ..
navigationBar 에서 large title 의 color 를 바꾸려 하였다. uinavigationbar 개발문서에서 bar's appearance 가 아닌 bar object 위의 appearance 의 속성을 보고싶었다. lagacy customizations largeTitleTextAttributes font, text color, text shadow color and text shadow offset 에 대한 특정 속성 설정이 가능하다. self.navigationController?.navigationBar.largeTitleTextAttributes = [.foregroundColor: UIColor(hex: reminderColor)] Apple Developer Document..
Realm 을 이용해서 데이터베이스 구축 설계 reminder 의 list 를 Realm 을 사용해서 로컬 디비를 구현하기로 했다. Relam listModel class ListModel: Object { @objc dynamic var reminderTitle: String = "" @objc dynamic var reminderColor: String = "" @objc dynamic var num: Int = 0 } ReminderModel class ReminderModel: Object { @objc dynamic var reminderTtile: String = "" @objc dynamic var reminderColor: String = "" @objc dynamic var title: ..
- SwiftUI
- Algorithm
- WWDC
- Firebase
- 2022 KAKAO TECH INTERNSHIP
- UserDefaults
- Protocol
- projectsetting
- Widget
- configurable widget
- IOS
- Notification
- YPImagePicker
- Swift
- OpenSourceLibrary
- MOYA
- Objective-C
- MVVM
- async/await
- rxswift
- WidgetKit
- CloneCoding
- urlsession
- RxCocoa
- APNS
- WWDC22
- watchOS
- 서버통신
- github
- containerBackground
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Total
- Today
- Yesterday