masksToBounds ์ clipsToBounds ์ฐจ์ด ๋จผ์ ์ด ๋ ๋ฉ์๋๋ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ค. ํ์ง๋ง ๋ค๋ฅธ ๊ณณ์์ ๋ถ๋ฌ์จ๋ค! label.layer.masksToBounds label.clipsToBounds masksToBounds ๋ CALayer ์ ํ๋กํผํฐ์ ๋๋ค. (CALayer ๋ ์ด๋ฏธ์ง ๊ธฐ๋ฐ content ๋ฅผ ๊ด๋ฆฌํ๊ณ content ์ ์ ๋๋ฉ์ด์ ์ ์ํํ ์ ์๋ object) clipsToBounds ๋ UIView ์ ํ๋กํผํฐ์ ๋๋ค. masksToBounds ํ์ ๋ ์ด์ด๊ฐ ๋ ์ด์ด ๊ฒฝ๊ณ๊น์ง ์๋ฆฌ๋ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ . true ๋ก ์ค์ ์ ๋ ์ด์ด์ ๊ฒฝ๊ณ๋ฅผ ์ผ์น์ํค๊ณ ๋ชจ์๋ฆฌ ๋ฐ๊ฒฝ(corner radius) ๋ฅผ ํฌํจ ํ๋ ์์์ ์ธ clipping mask ๋ฅผ ๋ง๋ ๋ค.(default ๋ false) ..
Core Data custom class ๋ฅผ ์ค์ ํด๋ณด๊ณ relationship ์ ํ์ฉํด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์คํ ํด๋ณด์. ๋ฏธ๋ฆฌ ๋ฐํ๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํด์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ค๊ณ์ง๋ง ์ปค์คํ ํด๋์ค๋ฅผ ์จ๋ณด๊ณ ์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํด๋ณด์๋ค. ๊ฒฐ๊ตญ ๋ฆด๋ ์ด์ ์ฝ์ ์ค์ ํด์ฃผ์๋ค. Core Data custom class ์ํฉ ๊ฐ ์ด์ผ๊ธฐ์ ํด๋นํ๋ ๊ธ์ด ์กด์ฌํ๊ณ pageIndex ์ ๋ฐ๋ผ์ ๋ทฐ์ปจ์ ์ด์ผ๊ธฐ์ ํด๋น ๊ธ์ ๋ฟ๋ ค์ฃผ๊ณ ์ถ์๋ค... ์์ ๊ฐ์ด entity ๋ฅผ ๋๊ฐ๋ฅผ ๋ง๋ค๊ณ StroyList ์ story attribute ์ custom class ๋ก StoryModel ๋ฐฐ์ด์ ๋ฃ์ด์ฃผ์๋ค. StoryModel : ํ์ดํ, ๋ํ ์ผ, ๋ ์ง ์ ๋ณด๋ฅผ ๊ฐ์ง๋ "์ด์ผ๊ธฐ" ํ๋์ ๋ค์ด๊ฐ๋ "๊ธ" ์ด๋ค. Story..
์๋ฒ push ์๋ฆผ์ ๊ตฌํํด๋ณด์ APNsTutorial-iOS ๐คจ Apple Push Notification service tutorial ๋จ์ํ ์์๋ฅผ ๋ฐ๋ผ์ ๊ฐ๋ฉด ๋ ์ค ์์๋๋ฐ ์์์ผํ ๊ฒ๋ ์์๊ณ ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ์๊ตฌํ๋ ํ์ผ๋ ๋ฌ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฒ์ฒํ ์ธ๋ด์ฌ์ ๊ฐ์ง๊ณ ์ฝ์ด์ฃผ๋ฉด ๊ณ ๋ง๊ฒ ์ต๋๋ค! ๋จผ์ ์ด๋ค ์๋ฒ ํ๊ฒฝ์์ ํธ์ฌ์๋ฆผ์ ๋ณด๋ด์ค ๊ฑด์ง ๊ทธ๋ ๋ค๋ฉด server provider ๊ฐ ์๊ตฌํ๋ ํ์ผ์ ๋ฌด์์ธ์ง ์๊ณ ์งํํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. p8(์ธ์ฆํค) ,p12(์ธ์ฆ์) ํ์ผ ๋ชจ๋ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค. APNs ํค๋(p8) ๊ณ์ ๋น 2๊ฐ๊น์ง๋ง ๋ง๋ค ์ ์์ด์ ๋๋ ๋ชป๋ง๋ค์ด๋ดค๊ณ ์ถ์ฒ๋ฅผ ์ฐธ๊ณ ํ๋ค. (์ฐธ๊ณ ๋ก p8(์ธ์ฆํค)์ ์ธ์ฆ๊ฐฑ์ ์ ํ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ p12(์ธ์ฆ์)๋ณด๋ค ์ ํธํ๋ค. ํ์ด์ด๋ฒ ์ด์ค์์๋..
User Defaults vs Core Data ์ข์ ์๋ฃ๋ฅผ ์ฐพ์์ ํด์ํด๋ดค์ต๋๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๋ ๊ฒ์ ์ ์ธํ๊ณ ๋ persistence solution ์ด ์ ํ ๋ค๋ฅธ User Defautls ์ Core Data! ๐คจ User Defaults ๋ ์ธ์ ์ฌ์ฉํ๋์? ์ค์ ์ด๋ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์ค์ ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ์ small data chunks ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ด์์ ์ด๋ค. property list ๋๋ plist ๋ก ๋์คํฌ์ ์ ์ฅ๋๋ค. property list ์ plist ๋ XML ํ์ผ ํํ์ด๋ค. UserDefaults ํด๋์ค๋ ์ฑ๋ฅ ํฅ์์ ์ํด์ ๋ฐํ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ์ ์ ์ฅํ๋ค. key-value ์ ์ฅ์์ผ๋ฟ์ด๋ค. ์ด๋ ๊ฒํ๋ฉด ์ฝ๊ฒ ์ก์ธ์คํ ์ ์์ง๋ง key-value pairs ๊ฐ ์๋ก ๋ช ์์ ๊ด๊ณ๊ฐ..
Date ๋ก ๋ ์ง ๋ค๋ฃจ๊ธฐ Date() ๋ฅผ ์ ์ฅํด์ ์ฌ์ฉ .dateComponents ์ฌ์ฉํด๋ดค๋ค ํ์ง๋ง ์ญ์ ๋ถํธํ๋ค func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = tableView.dequeueReusableCell(withIdentifier: "StoryTVC") as? StoryTVC else { return UITableViewCell() } let month = Calendar.current.dateComponents([.month], from: storyList[indexPath.row].date ?? Date()).month let day..
Moya BandAPI import Foundation import Moya class BandAPI { static let shared = BandAPI() static let provider = MoyaProvider() func getBands(completion: @escaping ([Band]) -> ()) { BandAPI.provider.request(.bands) { response in switch response { case .success(let result): do { let results = try JSONDecoder().decode(BandlistDataModel.self, from: result.data) completion(results.band) print(results...
Core Data CRUD NSManagedObjectContext ์ฌ๋ฌ๊ฐ์ง transaction ๋ฉ์๋๋ฅผ ์ดํด๋ณด์ manager class AppDelegate.swift ์์ persistentContainer ๋ฅผ ๊ณ์ ๊ฐ์ ธ์์ง๋ง ๋งค๋์ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ์ import Foundation import CoreData class PersistenceManager { static var shared: PersistenceManager = PersistenceManager() lazy var persistentContainer: NSPersistentContainer = { let container = NSPersistentContainer(name: "Model") container.loadPer..
- SwiftUI
- CloneCoding
- Swift
- Notification
- MVVM
- github
- projectsetting
- MOYA
- containerBackground
- WWDC22
- YPImagePicker
- Protocol
- RxCocoa
- Firebase
- watchOS
- async/await
- WWDC
- UserDefaults
- rxswift
- WidgetKit
- Objective-C
- Widget
- Algorithm
- OpenSourceLibrary
- configurable widget
- ์๋ฒํต์
- APNS
- 2022 KAKAO TECH INTERNSHIP
- IOS
- urlsession
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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