728x90 ๋ฐ์ํ ๐ iOS138 [iOS/UI] UIView ๋ฐฑ๊ทธ๋ผ์ด๋ ๊ทธ๋ผ๋ฐ์ด์ ์ ๋ฃ๊ธฐ (UIView Background gradient color) ์ค๋์ UIView์ ๊ทธ๋ผ๋ฐ์ด์ ์ ํจ๊ณผ๋ฃ๋ ๋ฒ์ ์์๋ด ์๋ค. ์ ์ผ ๋จผ์ ์คํ ๋ฆฌ๋ณด๋์์ ์ํํ๊ธฐ ์ํ view๋ฅผ ํ๋ ๋ง๋ค์ด์ฃผ๊ณ ๋ทฐ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐ์์ผ์ค๋๋ค. ๊ทธ๋ฐ ๋ค์ extension์ผ๋ก UIView๋ฅผ ํ์ฅ์์ผ์ฃผ๊ณ ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ ์ข ๋ฅ ์์ ๋ฐ๋ ๋ฉ์๋๋ก setGradient๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ์ฐ์ CAGradientLayer์ธ gradient๋ฅผ ๋ง๋ค์ด์ค ๋ค gradient.colors๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ ์ข ๋ฅ๋ฅผ ๋ฐ์ต๋๋ค. gradient.locations๋ ๊ทธ๋ผ๋ฐ์ด์ ์ด ์ด๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ง ์ ํ๋ ๊ฒ์ ๋๋ค. startPoint์ endPoint๋ ๊ฐ ๊ฐ ์์์ ๊ณผ ๋์ ์ ์ ํด์ฃผ๋ ๊ฒ๋๋ค. frame์ ํด๋น view์ ๋ง๊ฒ ๋ง์ถฐ์ฃผ๋ bounds๋ฅผ ์จ์ฃผ์๊ณ ํด๋น view์ layer์ addSublayer๋ก .. 2020. 5. 27. [iOS] Carthage๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌํ๊ธฐ Carthage๋ CocoaPods์ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ๊ฐ๋ ์ฝ์ฝ์ํ์ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์ด ์ด๋ด ๋ ์นด๋ฅดํ๊ณ ๋ฅผ ์ฌ์ฉํด์ค์ผํ๋๋ฐ ์ฐ์ brew๋ผ๋ MacOS์ฉ ํจํค์ง๊ด๋ฆฌ์๋ฅผ ์ค์นํด์ค๋๋ค. https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh ๊ทธ๋๋ก ํฐ๋ฏธ๋์ ๋ถ์ฌ๋ฃ๊ธฐ ํ์๋ฉด ๋ฉ๋๋ค! ๊ทธ ๋ค์ ์์์ ์ค์นํ Homebrew๋ฅผ ์ด์ฉํด carthage๋ฅผ ์ค์นํด์ค๋๋ค. $ brew install carthage ๊ทธ๋ฆฌ๊ณค ์ํ๋ ํ๋ก์ ํธ์ Cartfile์ ๋ง๋ค์ด์ค์ผ ํ๋๋ฐ ๋ฐฉ๋ฒ์ ํฐ๋ฏธ๋์์ ์์ ์ด ์๋ ํ๋ก์ ํธ๋ก ์ด๋ํ ๋ค 'touch Cartfile'์ ์ณ์ฃผ์๋ฉด ์๋์ ๊ฐ์ด .. 2020. 4. 15. [iOS/Library] WebP๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง์ฉ๋ ์ค์ด๊ธฐ "WebP"๋ ๊ตฌ๊ธ์์ ๋ง๋ ์ด๋ฏธ์ง ํฌ๋ฉง์ ๋๋ค. ํํ ์ฌ์ฉํ๋ GIF,PNG,JPEG ํ์ผ์ ์ต๋ 30%๊น์ง ์ฉ๋์ ์ค์ผ ์ ์์ต๋๋ค. ์ฐ์ ์๋ ๊นํ๋ธ์ฃผ์๋ก ๊ฐ์ ๋ค์์ https://github.com/ainame/Swift-WebP ainame/Swift-WebP A thin Swift wrapper of libwebp to make your own encoder/decoder app - ainame/Swift-WebP github.com ์นํผ๋ฅผ ์ค์นํด์ฃผ์๋ฉด ๋๋๋ฐ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Cocoapods์ ์ง์ํ์ง ์์ต๋๋ค. ๊ณ ๋ก Carthage๋ก ๋น๋ํด์ฃผ์ด์ผ ํฉ๋๋ค. Carthage๋ก ๋น๋ํ๋ ๋ฒ์ ์๋ ๊ธ์ ์ฐธ์กฐํด์ฃผ์ธ์ https://fomaios.tistory.com/220 Carthage๋ก ๋ผ์ด.. 2020. 4. 14. [iOS/Library] Swift Snapkit์ผ๋ก ์ฝ๋๋ก ์คํ ๋ ์ด์์ ์ฝ๊ฒํ๊ธฐ(Easy Programmatically AutoLayout) Snapkit์ ์ฝ๋๋ก ๋ ์ด์์์ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ฐ์ ํํ์ผ์ ์๋์ ๊ฐ์ด 'SnapKit', '~> 5.0.0'์ ์ถ๊ฐํด์ค๋๋ค. ๋ฒ์ ์ ๋ฐ๋ ์ ์์ผ๋ฏ๋ก ์๋ ์ค๋ ํท ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ฐ์ ์ ํ์ธํ์๊ณ ์ถ๊ฐํ์๊ธฐ ๋ฐ๋๋๋ค. https://github.com/SnapKit/SnapKit SnapKit/SnapKit A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub. github.com ๊ทธ๋ฆฌ๊ณ ๋ทฐ์ปจํธ๋กค๋ฌ๋ก ์ด๋ํด 'SnapKit'์ importํด์ฃผ๊ณ ๋ฌด์ง๊ฐ์ UIView๋ค์ ๋ง๋ค์ด๋์ต๋๋ค. ๊ทธ๋ฆฌ๊ณค view์ addSubview๋ก ๋ฌด์ง๊ฐ์ ๋ทฐ๋ค์ ๋ฃ.. 2020. 4. 10. [iOS/Library] Swift Realm์ผ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌํ๊ธฐ (Realm DataBase Save,Read,Update,Delete) ๋ ์ด๋? ์์ฃผ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ฐ์ผ ์ฉ ์คํ์์ค ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค ์ฌ์ฉ๋ฒ์ ์ฐ์ pod์ 'ReamSwift'๋ฅผ ์ถ๊ฐํด์ค๋๋ค. ํฐ๋ฏธ๋๋ก ๊ฐ์ pod install์ ํด์ค ๋ค ๋ค์ Xcode๋ก ์์ 'import RealmSwift'๋ฅผ ํด์ค ๋ค ์ํ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด์ค๋๋ค. ์ ๋ UserInfo๋ผ๊ณ ์ด๋ฆ ์ง๊ณ (๋ฐ๋์ ์์ Object๋ก ๋ช ์ํด์ผ ํฉ๋๋ค.) ์ด๋ฆ๊ณผ ๋์ด ์ฑ๋ณ์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ ์ธํด์ฃผ๊ฒ ์ต๋๋ค. 1 2 3 4 5 6 7 8 import Foundation import RealmSwift class UserInfo:Object { @objc dynamic var name = "" @objc dynamic var age = 0 @objc dynamic var gender = "" } h.. 2020. 4. 5. [iOS/UI] Swift ํญ๋ฐ์์ดํ ์ ์ด๋ฏธ์ง ์ฝ์ ํ๊ธฐ(UITabBarItem Using oringinal image) ์ฐ์ ํญ๋ฐ์์ดํ ์ ๋ฃ์ ์ด๋ฏธ์ง๋ฅผ Asset์ ๋ฃ์ด์ค๋ค. ๊ทธ ๋ค์ ํด๋น ์ด๋ฏธ์ง์ Image Set์์ Render As๋ฅผ Original Image๋ก ๋ฐ๊ฟ์ค ๋ค ํด๋น ๋ทฐ์ปจํธ๋กค๋ฌ์ Image๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์๋์ ๊ฐ์ด ์ด๋ฏธ์ง๊ฐ ๊ทธ๋๋ก ์ ์ฉ๋๋ค. ์๋์ ๊ฐ์ด ์ ์ ์ฉ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค. ํด๋น ์ด๋ฏธ์ง๋ฅผ ์กฐ๊ธ ๋ ์๋๋ก ๋ฎ์ถ๊ณ ์ถ๋ค๋ฉด ํด๋น ํญ๋ฐ์์ดํ ์ Image Inset์ ์กฐ์ ํ๋ฉด ๋๋ค! 2020. 4. 3. [iOS/UI] Swift ์จ๋ฒ ์ฌ์ง ๊ณ ๋ฅธ ๊ฐฏ์ ์ฐจ๋ก๋ก ๋ฒํธ ๋ถ์ฌํ๊ธฐ ์ฐ์ ๋๋ ์๋ ์นดํก ์ฌ์ง๊ณ ๋ฅด๊ธฐ์ ๊ฐ์ด ํญํ ์์๋๋ก ๋ฒํธ๊ฐ ๋ถ์ฌ๋๋ฉด์ ์ฌ์ง๋ฐฐ์ด์ ์ฌ์ง์ด ๋ค์ด๊ฐ๊ฒ ํ๊ณ ๋ค์ ํญํ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ์ฌ์ง์ ์ญ์ ํด์ฃผ๊ณ ๊ทธ๋ณด๋ค ํฐ ๋ฒํธ๋ค์ ์ญ์ ํ ๊ฐฏ์๋งํผ ๋ฒํธ๊ฐ ์์์ ธ์ผํ๋ค. ์ฐ์ 2๊ฐ์ ๋ฐฐ์ด์ด ํ์ํ๋ฐ ํ๋๋ ์ฌ์ง์ ๋ด์ ๋ฐฐ์ด๊ณผ ํ๋๋ ๋ช ๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ ์ ํ๋์๋์ง ๋ด์ ๋ฐฐ์ด์ด ํ์ํ๋ค. 1 2 var photos = [UIImage]() var photoarray = [Int]() ๊ทธ ๋ค์ cellForItemAt์ ํฌํ ์ด๋ ์ด๊ฐ ๋น์ด์์ง์๋ค๋ฉด !photoarray.isEmpty{ for๋ฌธ์ ์ด์ฉํด photoarray์์ ์๋ ์ซ์๋ค์ ์ฐจ๋ก๋ก indexPath์ ๋น๊ตํด์ ๋ง๋ค๋ฉด ํด๋น ์ซ์๋ผ๋ฒจ(cell.number)๋ฅผ i๋ก ๋ฐ๊ฟ์ค๋ค. ๊ทธ๋ฌ๋ฉด photoarray์์ ์์๋๋ก ํ ์ค.. 2020. 4. 1. [iOS] ๋ฐ์น์คํฌ๋ฆฐ ์ ๋ฐ์ดํธํ๊ธฐ(LaunchScreen Update) ์ฐ์ ํฐ์ด๋ ์๋ฎฌ๋ ์ดํฐ์์ ์ฑ์ ์ญ์ ํ๊ณ ์ ์์ ๋๊ณ ๋ค์ ์ผ ๋ค์ ์ฑ์ ๋ค์ ์ค์นํ๋ฉด ๋ฐ์น์คํฌ๋ฆฐ์ด ์ ๋ฐ์ดํธ ๋๋ค! 2020. 3. 25. [iOS/Library] Swift ๋กํฐ ์ ๋๋ฉ์ด์ ๊ตฌํํ๊ธฐ(Swift Lottie Animation) ์ฐ์ ๋กํฐ ํํ์ด์ง์ ๊ฐ์ ์ํ๋ ์ ๋๋ฉ์ด์ ํ์ผ์ ์ฐพ๋๋ค. Download JSON์ ๋๋ฌ์ ์ ์ฅํด์ค๋ค. Xcode๋ก ๋์์์ ์ฒซ๋ฒ์งธ๋ก ํ ์ผ์ podfile์ pod 'lottie-ios' ๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ ํฐ๋ฏธ๋๋ก ๊ฐ์ pot install์ ํด์ค๋ค. ๋ค์ด๋ฐ์๋ jsonํ์ผ์ ์ถ๊ฐํด์ฃผ๊ณ ์ด๋ฆ์ ์ค์ ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ import Lottie๋ฅผ ํด์ค ๋ค ์์์ animationView๋ฅผ ์ค์ ํด์ฃผ๊ณ ์ด๊ธฐํ๋ฅผ Lottie๊ฐ ์ ๊ณตํ๋ AnimationView()๋ก ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ setup()๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ๋ฃ์ด์ค๋ค. animationView.animation = Animation.named("์ค์ ํด์คฌ๋ jsonํ์ผ์ ์ด๋ฆ") 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 .. 2020. 3. 24. [iOS] Swift ์ฌ์ง ํ๊ฐ๋ฐ์ ์ํ์๊ธฐ ๋ฐ ์ธํ ์ผ๋ก ์ธ๋ํ๊ธฐ ์ฐ์ ์ฒดํฌํฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌํผ๋ฏธ์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ๊ฐ ์ํ์ ๋ฐ๋ผ ํด์ผํ ์ผ์ ์ ํด์ค๋ค 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 func checkPhotoLibraryPermission() { let status = PHPhotoLibrary.authorizationStatus() switch status { case .authorized: self.testlabel.text = "ํ๋ฝ" case .denied, .restricted : self.testlabel.text = "์์ง" case .notDetermined: self.testlabel.text = "๊ฒฐ์ ๋ชปํจ" PHPhotoLibrary.requestAuthorization { statu.. 2020. 3. 23. [iOS] ์ธ๊ทธ๋ก ํ๋ฉด ์ด๋ ์ ๋ค๋น๊ฒ์ด์ ํ์ดํ ๋ฐ๊พธ๊ธฐ ์๋ ๋ค๋น๊ฒ์ด์ ํ์ดํ์ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ด์ฉํด์ ๋ฐ๊พธ๋ฉด ๋๋ค. ํ์ง๋ง ์ธ๊ทธ๋ก ์ด๋ ์์ ์ํ๋ ํ ์คํธ๋ก ๋ฐ๋์ง๊ฐ ์์๋ค. ๊ตฌ๊ธ๋งํด ๋ณธ ๊ฒฐ๊ณผ ViewController์ ๋ฐ๋ก title์ด๋ผ๋ property๊ฐ ์กด์ฌํ๊ณ ์ด๊ฒ์ ๋ฐ๊ฟ์ค์ผ ๋ค๋น๊ฒ์ด์ ํ์ดํ์ด ๋ฐ๋๊ฒ ๋๋ค. ์ด๋ ๊ฒ name์ ์ค์ ํด์ค ๋ค ํ๋ฉด์ ์ด๋ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ดํ์ด ๋ฐ๋๊ฒ ๋๋ค. 2020. 2. 29. [iOS] UITableViewController์์ ์ธ๊ทธ๋ก ๊ฐ ๋๊ธฐ๊ธฐ ์ฐ์ ์ ์์ ์๋ ๋ฒํผ์ addTarget์ ์ค์ ํด์ฃผ๊ณ action์ #selector(@objcํจ์)๋ฅผ ๋ฃ์ด์ค๋ค. @objc ํจ์์ performSegue๋ฅผ ์ด์ฉํด ํด๋น ์ธ๊ทธ์ ์์ด๋ดํฐํผ์ด๋ฅผ ์ ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ override๋์ด์๋ ๋ฉ์๋ prepare๋ฅผ ์ด์ฉํด ๊ทธ ์์ param์ด๋ผ๋ ์์๋ฅผ ๋ง๋ค์ด์ค ๋ค segue.destination as! ์ํ๋๋ทฐ์ปจํธ๋กค๋ฌ ์ํ๋๋ทฐ์ปจํธ๋กค๋ฌ์์ ๋ณ์ ์ค ๋ฐ๊ฟ ๊ฐ์ ์ ๋ ฅํด์ค๋ค. ์ถ๋ฐํ ๋ทฐ์ปจํธ๋กค๋ฌ์์ control์ ํด์ ๋์ฐฉํ๊ณ ์ถ์ ๋ทฐ์ปจํธ๋กค๋ฌ์ show๋ฅผ ํด์ฃผ๊ณ ์ค๋ฅธ์ชฝ ์๋จ์ identifier์ ์ํ๋ ์ด๋ฆ์ ์ค์ ํด์ค๋ค. 2020. 2. 29. ์ด์ 1 ยทยทยท 6 7 8 9 10 11 12 ๋ค์ 728x90 ๋ฐ์ํ