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: ..
push ์ pop ์ ViewLifeCycle ๋ฌธ์ viewDidLoad ์์ realm ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋ทฐ์ ๋ฟ๋ ค์ฃผ๋ ํ์์ธ๋ฐ ์ด ๊ฒฝ์ฐ push ํ๊ณ pop ํด์ ๋ทฐ๋ก ๋์์ฌ ๊ฒฝ์ฐ ์ ๋ฐ์ดํธ๊ฐ ๋์ง ์์๋ค. ์์ธ push ํ ๊ฒฝ์ฐ์ view ๊ฐ ์ฌ๋ผ์ง์ง๋ง ๋ฉ๋ชจ๋ฆฌ์๋ ๋จ์์๋ค๋ ๊ฒ์ ๋์ณค๋ค. ์ฆ, viewDidLoad ๋ ํ๋ฒ๋ง ํธ์ถ๋๋๋ฐ notificationToken ์ viewDidLoad ์์ ์ค์ ํด์ฃผ์๋ ๊ฒ์ด ๋ฌธ์ ์๋ค. viewWillDisappear ์์ notificationToken ์ invalidate() ํ๊ธฐ ๋๋ฌธ์ ๋ทฐ๊ฐ ์ฌ๋ผ์ง ๋ ์ ์ฅํ notificationToken ์ด ํด์ ๊ฐ ๋์๋ค. ๊ทธ ํ์ push ๋ ๋ทฐ์์ db ๋ฅผ ์์ ํ๊ณ pop ํด์ ๋ฉ์ธ ๋ทฐ๋ฅผ viewWillAp..
- watchOS
- async/await
- WWDC
- Swift
- Firebase
- Notification
- MVVM
- RxCocoa
- Protocol
- IOS
- containerBackground
- APNS
- WidgetKit
- SwiftUI
- urlsession
- 2022 KAKAO TECH INTERNSHIP
- configurable widget
- projectsetting
- MOYA
- UserDefaults
- CloneCoding
- Objective-C
- YPImagePicker
- Widget
- Algorithm
- WWDC22
- OpenSourceLibrary
- rxswift
- ์๋ฒํต์
- github
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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