├── .DS_Store
├── .gitignore
├── LICENSE
├── LNTheme.podspec
├── LNTheme.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
│ └── xcuserdata
│ │ └── vvusu.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcuserdata
│ └── vvusu.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
├── LNTheme
├── .DS_Store
├── Info.plist
├── LNTheme.h
└── LNTheme
│ ├── .DS_Store
│ ├── LNTheme.h
│ ├── LNTheme.m
│ ├── LNThemePicker.h
│ ├── LNThemePicker.m
│ ├── NSObject+LNTheme.h
│ ├── NSObject+LNTheme.m
│ ├── UIImage+Tint.h
│ └── UIImage+Tint.m
├── LNThemeDemo
├── AppDelegate.h
├── AppDelegate.m
├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── AppIcon-20.0x20.0@2x.png
│ │ ├── AppIcon-20.0x20.0@3x.png
│ │ ├── AppIcon-29.0x29.0@2x.png
│ │ ├── AppIcon-29.0x29.0@3x.png
│ │ ├── AppIcon-40.0x40.0@2x.png
│ │ ├── AppIcon-40.0x40.0@3x.png
│ │ ├── AppIcon-60.0x60.0@2x.png
│ │ ├── AppIcon-60.0x60.0@3x.png
│ │ └── Contents.json
│ ├── Contents.json
│ ├── cm2_act_view_btn_back.imageset
│ │ ├── Contents.json
│ │ ├── cm2_act_view_btn_back.png
│ │ ├── cm2_act_view_btn_back@2x.png
│ │ └── cm2_act_view_btn_back@3x.png
│ ├── cm2_act_view_btn_back_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_act_view_btn_back_prs.png
│ │ ├── cm2_act_view_btn_back_prs@2x.png
│ │ └── cm2_act_view_btn_back_prs@3x.png
│ ├── cm2_btm_bg-1.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_bg.png
│ │ ├── cm2_btm_bg@2x.png
│ │ └── cm2_btm_bg@3x.png
│ ├── cm2_btm_bg.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_bg.png
│ │ ├── cm2_btm_bg@2x.png
│ │ └── cm2_btm_bg@3x.png
│ ├── cm2_btm_bg_night.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_bg_night.png
│ │ ├── cm2_btm_bg_night@2x.png
│ │ └── cm2_btm_bg_night@3x.png
│ ├── cm2_btm_bg_white.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_bg_white.png
│ │ ├── cm2_btm_bg_white@2x.png
│ │ └── cm2_btm_bg_white@3x.png
│ ├── cm2_btm_icn_account.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_account.png
│ │ ├── cm2_btm_icn_account@2x.png
│ │ └── cm2_btm_icn_account@3x.png
│ ├── cm2_btm_icn_account_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_account_prs.png
│ │ ├── cm2_btm_icn_account_prs@2x.png
│ │ └── cm2_btm_icn_account_prs@3x.png
│ ├── cm2_btm_icn_cmt.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_cmt.png
│ │ ├── cm2_btm_icn_cmt@2x.png
│ │ └── cm2_btm_icn_cmt@3x.png
│ ├── cm2_btm_icn_discovery.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_discovery.png
│ │ ├── cm2_btm_icn_discovery@2x.png
│ │ └── cm2_btm_icn_discovery@3x.png
│ ├── cm2_btm_icn_discovery_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_discovery_prs.png
│ │ ├── cm2_btm_icn_discovery_prs@2x.png
│ │ └── cm2_btm_icn_discovery_prs@3x.png
│ ├── cm2_btm_icn_friend.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_friend.png
│ │ ├── cm2_btm_icn_friend@2x.png
│ │ └── cm2_btm_icn_friend@3x.png
│ ├── cm2_btm_icn_friend_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_friend_prs.png
│ │ ├── cm2_btm_icn_friend_prs@2x.png
│ │ └── cm2_btm_icn_friend_prs@3x.png
│ ├── cm2_btm_icn_music.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_music.png
│ │ ├── cm2_btm_icn_music@2x.png
│ │ └── cm2_btm_icn_music@3x.png
│ ├── cm2_btm_icn_music_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_music_prs.png
│ │ ├── cm2_btm_icn_music_prs@2x.png
│ │ └── cm2_btm_icn_music_prs@3x.png
│ ├── cm2_btm_icn_share.imageset
│ │ ├── Contents.json
│ │ ├── cm2_btm_icn_share.png
│ │ ├── cm2_btm_icn_share@2x.png
│ │ └── cm2_btm_icn_share@3x.png
│ ├── cm2_icn_back.imageset
│ │ ├── Contents.json
│ │ ├── cm2_icn_back.png
│ │ ├── cm2_icn_back@2x.png
│ │ └── cm2_icn_back@3x.png
│ ├── cm2_live_btn_back.imageset
│ │ ├── Contents.json
│ │ ├── cm2_live_btn_back.png
│ │ ├── cm2_live_btn_back@2x.png
│ │ └── cm2_live_btn_back@3x.png
│ ├── cm2_live_btn_back_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_live_btn_back_prs.png
│ │ ├── cm2_live_btn_back_prs@2x.png
│ │ └── cm2_live_btn_back_prs@3x.png
│ ├── cm2_mv_btn_back.imageset
│ │ ├── Contents.json
│ │ ├── cm2_mv_btn_back.png
│ │ ├── cm2_mv_btn_back@2x.png
│ │ └── cm2_mv_btn_back@3x.png
│ ├── cm2_mv_btn_back_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_mv_btn_back_prs.png
│ │ ├── cm2_mv_btn_back_prs@2x.png
│ │ └── cm2_mv_btn_back_prs@3x.png
│ ├── cm2_topbar_bg.imageset
│ │ ├── Contents.json
│ │ ├── cm2_topbar_bg.png
│ │ ├── cm2_topbar_bg@2x.png
│ │ └── cm2_topbar_bg@3x.png
│ ├── cm2_topbar_bg_ios6.imageset
│ │ ├── Contents.json
│ │ ├── cm2_topbar_bg_ios6.png
│ │ └── cm2_topbar_bg_ios6@2x.png
│ ├── cm2_topbar_icn_back.imageset
│ │ ├── Contents.json
│ │ ├── cm2_topbar_icn_back.png
│ │ ├── cm2_topbar_icn_back@2x.png
│ │ └── cm2_topbar_icn_back@3x.png
│ ├── cm2_topbar_icn_back_prs.imageset
│ │ ├── Contents.json
│ │ ├── cm2_topbar_icn_back_prs.png
│ │ ├── cm2_topbar_icn_back_prs@2x.png
│ │ └── cm2_topbar_icn_back_prs@3x.png
│ ├── navigationbar_background.imageset
│ │ ├── Contents.json
│ │ ├── navigationbar_background.png
│ │ └── navigationbar_background@2x.png
│ └── navigationbar_background_os7.imageset
│ │ ├── Contents.json
│ │ ├── navigationbar_background_os7.png
│ │ └── navigationbar_background_os7@2x.png
├── Base.lproj
│ └── LaunchScreen.storyboard
├── BaseVC
│ ├── NavController.h
│ ├── NavController.m
│ ├── TabBarController.h
│ └── TabBarController.m
├── Info.plist
├── Libraries
│ ├── .DS_Store
│ ├── FLAnimatedImage
│ │ ├── FLAnimatedImage.h
│ │ ├── FLAnimatedImage.m
│ │ ├── FLAnimatedImageView.h
│ │ └── FLAnimatedImageView.m
│ ├── GoldZip
│ │ ├── .DS_Store
│ │ ├── GoldZipLoader.h
│ │ ├── GoldZipLoader.m
│ │ └── libs
│ │ │ ├── .DS_Store
│ │ │ ├── ZipArchive.h
│ │ │ ├── ZipArchive.m
│ │ │ └── minizip
│ │ │ ├── crypt.h
│ │ │ ├── ioapi.c
│ │ │ ├── ioapi.h
│ │ │ ├── mztools.c
│ │ │ ├── mztools.h
│ │ │ ├── unzip.c
│ │ │ ├── unzip.h
│ │ │ ├── zip.c
│ │ │ └── zip.h
│ ├── MBProgressHUD
│ │ ├── .DS_Store
│ │ ├── MBProgressHUD.h
│ │ └── MBProgressHUD.m
│ ├── SDWebImage
│ │ ├── FLAnimatedImage
│ │ │ ├── FLAnimatedImageView+WebCache.h
│ │ │ └── FLAnimatedImageView+WebCache.m
│ │ ├── MKAnnotationView+WebCache.h
│ │ ├── MKAnnotationView+WebCache.m
│ │ ├── NSData+ImageContentType.h
│ │ ├── NSData+ImageContentType.m
│ │ ├── NSImage+WebCache.h
│ │ ├── NSImage+WebCache.m
│ │ ├── SDImageCache.h
│ │ ├── SDImageCache.m
│ │ ├── SDImageCacheConfig.h
│ │ ├── SDImageCacheConfig.m
│ │ ├── SDWebImageCompat.h
│ │ ├── SDWebImageCompat.m
│ │ ├── SDWebImageDecoder.h
│ │ ├── SDWebImageDecoder.m
│ │ ├── SDWebImageDownloader.h
│ │ ├── SDWebImageDownloader.m
│ │ ├── SDWebImageDownloaderOperation.h
│ │ ├── SDWebImageDownloaderOperation.m
│ │ ├── SDWebImageManager.h
│ │ ├── SDWebImageManager.m
│ │ ├── SDWebImageOperation.h
│ │ ├── SDWebImagePrefetcher.h
│ │ ├── SDWebImagePrefetcher.m
│ │ ├── UIButton+WebCache.h
│ │ ├── UIButton+WebCache.m
│ │ ├── UIImage+GIF.h
│ │ ├── UIImage+GIF.m
│ │ ├── UIImage+MultiFormat.h
│ │ ├── UIImage+MultiFormat.m
│ │ ├── UIImage+WebP.h
│ │ ├── UIImage+WebP.m
│ │ ├── UIImageView+HighlightedWebCache.h
│ │ ├── UIImageView+HighlightedWebCache.m
│ │ ├── UIImageView+WebCache.h
│ │ ├── UIImageView+WebCache.m
│ │ ├── UIView+WebCache.h
│ │ ├── UIView+WebCache.m
│ │ ├── UIView+WebCacheOperation.h
│ │ └── UIView+WebCacheOperation.m
│ └── YYModel
│ │ ├── NSObject+YYModel.h
│ │ ├── NSObject+YYModel.m
│ │ ├── YYClassInfo.h
│ │ ├── YYClassInfo.m
│ │ └── YYModel.h
├── Main.storyboard
├── MyMusicVC
│ ├── MyMusicVC.h
│ └── MyMusicVC.m
├── ThemeVC
│ ├── ThemeDetailVC.h
│ ├── ThemeDetailVC.m
│ ├── ThemeDetailVC.xib
│ ├── ThemeModel.h
│ ├── ThemeModel.m
│ ├── ThemeSettingCell.h
│ ├── ThemeSettingCell.m
│ ├── ThemeSettingCell.xib
│ ├── ThemeSettingVC.h
│ └── ThemeSettingVC.m
├── customFont.json
├── defaultTheme.json
├── main.m
└── skineTheme.json
├── LNThemeTests
├── Info.plist
└── LNThemeTests.m
├── README.md
├── README_CN.md
├── Scripts
├── .DS_Store
└── build-universal-framework.sh
├── build
├── .DS_Store
└── LNTheme.build
│ ├── .DS_Store
│ ├── Debug-iphoneos
│ └── LNTheme.build
│ │ ├── DerivedSources
│ │ └── LNTheme_vers.c
│ │ ├── LNTheme-all-non-framework-target-headers.hmap
│ │ ├── LNTheme-all-target-headers.hmap
│ │ ├── LNTheme-generated-files.hmap
│ │ ├── LNTheme-own-target-headers.hmap
│ │ ├── LNTheme-project-headers.hmap
│ │ ├── LNTheme.hmap
│ │ ├── Objects-normal
│ │ ├── arm64
│ │ │ ├── LNTheme
│ │ │ ├── LNTheme.LinkFileList
│ │ │ ├── LNTheme.d
│ │ │ ├── LNTheme.dia
│ │ │ ├── LNTheme.o
│ │ │ ├── LNThemePicker.d
│ │ │ ├── LNThemePicker.dia
│ │ │ ├── LNThemePicker.o
│ │ │ ├── LNTheme_vers.d
│ │ │ ├── LNTheme_vers.dia
│ │ │ ├── LNTheme_vers.o
│ │ │ ├── NSObject+LNTheme.d
│ │ │ ├── NSObject+LNTheme.dia
│ │ │ ├── NSObject+LNTheme.o
│ │ │ ├── UIImage+Tint.d
│ │ │ ├── UIImage+Tint.dia
│ │ │ └── UIImage+Tint.o
│ │ └── armv7
│ │ │ ├── LNTheme
│ │ │ ├── LNTheme.LinkFileList
│ │ │ ├── LNTheme.d
│ │ │ ├── LNTheme.dia
│ │ │ ├── LNTheme.o
│ │ │ ├── LNThemePicker.d
│ │ │ ├── LNThemePicker.dia
│ │ │ ├── LNThemePicker.o
│ │ │ ├── LNTheme_vers.d
│ │ │ ├── LNTheme_vers.dia
│ │ │ ├── LNTheme_vers.o
│ │ │ ├── NSObject+LNTheme.d
│ │ │ ├── NSObject+LNTheme.dia
│ │ │ ├── NSObject+LNTheme.o
│ │ │ ├── UIImage+Tint.d
│ │ │ ├── UIImage+Tint.dia
│ │ │ └── UIImage+Tint.o
│ │ ├── dgph
│ │ ├── dgph~
│ │ └── module.modulemap
│ ├── Debug-iphonesimulator
│ └── LNTheme.build
│ │ ├── DerivedSources
│ │ └── LNTheme_vers.c
│ │ ├── LNTheme-all-non-framework-target-headers.hmap
│ │ ├── LNTheme-all-target-headers.hmap
│ │ ├── LNTheme-generated-files.hmap
│ │ ├── LNTheme-own-target-headers.hmap
│ │ ├── LNTheme-project-headers.hmap
│ │ ├── LNTheme.hmap
│ │ ├── Objects-normal
│ │ ├── i386
│ │ │ ├── LNTheme
│ │ │ ├── LNTheme.LinkFileList
│ │ │ ├── LNTheme.d
│ │ │ ├── LNTheme.dia
│ │ │ ├── LNTheme.o
│ │ │ ├── LNThemePicker.d
│ │ │ ├── LNThemePicker.dia
│ │ │ ├── LNThemePicker.o
│ │ │ ├── LNTheme_vers.d
│ │ │ ├── LNTheme_vers.dia
│ │ │ ├── LNTheme_vers.o
│ │ │ ├── NSObject+LNTheme.d
│ │ │ ├── NSObject+LNTheme.dia
│ │ │ ├── NSObject+LNTheme.o
│ │ │ ├── UIImage+Tint.d
│ │ │ ├── UIImage+Tint.dia
│ │ │ └── UIImage+Tint.o
│ │ └── x86_64
│ │ │ ├── LNTheme
│ │ │ ├── LNTheme.LinkFileList
│ │ │ ├── LNTheme.d
│ │ │ ├── LNTheme.dia
│ │ │ ├── LNTheme.o
│ │ │ ├── LNThemePicker.d
│ │ │ ├── LNThemePicker.dia
│ │ │ ├── LNThemePicker.o
│ │ │ ├── LNTheme_vers.d
│ │ │ ├── LNTheme_vers.dia
│ │ │ ├── LNTheme_vers.o
│ │ │ ├── NSObject+LNTheme.d
│ │ │ ├── NSObject+LNTheme.dia
│ │ │ ├── NSObject+LNTheme.o
│ │ │ ├── UIImage+Tint.d
│ │ │ ├── UIImage+Tint.dia
│ │ │ └── UIImage+Tint.o
│ │ ├── dgph
│ │ ├── dgph~
│ │ └── module.modulemap
│ └── all-product-headers.yaml
└── images
├── .DS_Store
├── banner.png
├── demo_1.gif
└── demo_2.gif
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OS X
2 | .DS_Store
3 | *.sketch
4 | # Xcode
5 | build/
6 | *.pbxuser
7 | !default.pbxuser
8 | *.mode1v3
9 | !default.mode1v3
10 | *.mode2v3
11 | !default.mode2v3
12 | *.perspectivev3
13 | !default.perspectivev3
14 | xcuserdata/
15 | *.xccheckout
16 | profile
17 | *.moved-aside
18 | DerivedData
19 | *.hmap
20 | *.ipa
21 |
22 | # Bundler
23 | .bundle
24 |
25 | Carthage
26 | # We recommend against adding the Pods directory to your .gitignore. However
27 | # you should judge for yourself, the pros and cons are mentioned at:
28 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
29 | #
30 | # Note: if you ignore the Pods directory, make sure to uncomment
31 | # `pod install` in .travis.yml
32 | #
33 | Pods/
34 |
35 | fastlane/report.xml
36 | fastlane/README.md
37 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 vvusu https://vvusu.com
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/LNTheme.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/LNTheme.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/LNTheme.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LNTheme.xcodeproj/project.xcworkspace/xcuserdata/vvusu.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNTheme.xcodeproj/project.xcworkspace/xcuserdata/vvusu.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/LNTheme.xcodeproj/xcuserdata/vvusu.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | LNTheme-Universal.xcscheme
8 |
9 | orderHint
10 | 1
11 |
12 | LNTheme.xcscheme
13 |
14 | orderHint
15 | 0
16 |
17 | LNThemeDemo.xcscheme
18 |
19 | orderHint
20 | 3
21 |
22 | LNThemeTests.xcscheme
23 |
24 | orderHint
25 | 2
26 |
27 |
28 | SuppressBuildableAutocreation
29 |
30 | AF5E525B1E667A6D001E9E82
31 |
32 | primary
33 |
34 |
35 | AF5E52631E667B59001E9E82
36 |
37 | primary
38 |
39 |
40 | AF5E527B1E667B59001E9E82
41 |
42 | primary
43 |
44 |
45 | AF5E52861E667B59001E9E82
46 |
47 | primary
48 |
49 |
50 | AFB617FC1E120DEE00D15764
51 |
52 | primary
53 |
54 |
55 | AFB618051E120DEF00D15764
56 |
57 | primary
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/LNTheme/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNTheme/.DS_Store
--------------------------------------------------------------------------------
/LNTheme/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | $(CURRENT_PROJECT_VERSION)
21 | NSPrincipalClass
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme.h:
--------------------------------------------------------------------------------
1 | //
2 | // LNTheme.h
3 | // LNTheme
4 | //
5 | // Created by vvusu on 12/27/16.
6 | // Copyright © 2016 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for LNTheme.
12 | FOUNDATION_EXPORT double LNThemeVersionNumber;
13 |
14 | //! Project version string for LNTheme.
15 | FOUNDATION_EXPORT const unsigned char LNThemeVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 | #if __has_include()
20 |
21 | #import
22 | #import
23 | #import
24 | #import
25 |
26 | #else
27 |
28 | #import "LNTheme.h"
29 | #import "UIImage+Tint.h"
30 | #import "LNThemePicker.h"
31 | #import "NSObject+LNTheme.h"
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNTheme/LNTheme/.DS_Store
--------------------------------------------------------------------------------
/LNTheme/LNTheme/LNTheme.h:
--------------------------------------------------------------------------------
1 | //
2 | // LNTheme.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/30/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | /**
10 | 工程目录下可以添加"defaultTheme.json"文件,为默认的主题配置文件。也可自己注册主题配置文件。
11 | 主题json文件格式如下:
12 | {
13 | "colors": {
14 | "c1": "b2770f",
15 | "c2": "b2770f",
16 | "c3": "aaaaaa"
17 | },
18 | "fonts": {
19 | "f1": "8",
20 | "f2": "i,9",
21 | "f3": "B,20",
22 | "f4": "wh,20",
23 | "f5": "iconfont,35"
24 | },
25 | "coordinators": {
26 | "LNTabBarBadgePointViewOriginOffset": "{0,0}",
27 | "LNTabBarBadgePointViewOrigin": "{0,0,12,11}"
28 | }
29 | }
30 | 注意:
31 | 颜色值格式为: RGB / ARGB / RRGGBB / AARRGGBB
32 | coordinators格式为: {1,2} / {1,2,3,4} / {1,2,3,4,5,6}
33 | */
34 |
35 | #import
36 | #import "NSObject+LNTheme.h"
37 |
38 | //默认主题的名称
39 | FOUNDATION_EXPORT NSString * const LNTHEME_DEFAULT_NAME;
40 |
41 | @interface LNTheme : NSObject
42 |
43 | + (instancetype)instance;
44 | /**
45 | 当前主题Name
46 | */
47 | + (NSString *)currentTheme;
48 |
49 | /**
50 | 当前FontName
51 | */
52 | + (NSString *)currentFont;
53 |
54 | /**
55 | 沙盒中主题存储的根目录
56 | */
57 | + (NSString *)themeRootPath;
58 | /**
59 | 启动本地主题注册接口 适用于多Frameworks注册
60 | 各模块需要编写LNTheme的分类,并以‘registerTheme_’作为前缀命名
61 | - (void)registerTheme_Host {
62 | NSString *path1 = [[NSBundle mainBundle] pathForResource:@"theme_day" ofType:@"json"]
63 | NSString *path2 = [[NSBundle mainBundle] pathForResource:@"theme_night" ofType:@"json"]
64 | [[self class] addTheme:LNTHEME_DEFAULT_NAME forPath:path1];
65 | [[self class] addTheme:@"day" forPath:path2];
66 |
67 | //如果有本地字体
68 | [[self class] addFont:LNTHEME_DEFAULT_NAME forPath:path1];
69 | }
70 | */
71 | - (void)loadLocalJsonFiles;
72 |
73 | /**
74 | 注册本地字体的路径,可以多次调用
75 | @param fontName 主题名字 默认主题为LN_DEFAULT_THEME_NAME("default")
76 | @param path 目录地址
77 | */
78 | + (void)addFont:(NSString *)fontName forPath:(NSString *)path;
79 |
80 | /**
81 | 切换主题,初始值为default
82 | 如果当前主题不存在,则自动切换回default
83 | @param themeName 当前主题
84 | */
85 | + (void)changeTheme:(NSString *)themeName;
86 |
87 | /**
88 | 注册本地主题的路径,可以多次调用
89 | @param themeName 主题名字 默认主题为LN_DEFAULT_THEME_NAME("default")
90 | @param path 目录地址
91 | */
92 | + (void)addTheme:(NSString *)themeName forPath:(NSString *)path;
93 |
94 | /**
95 | 基础数据结构对象 Font
96 | @param type 名称
97 | @return UIFont
98 | */
99 | + (UIFont *)fontForType:(NSString *)type;
100 |
101 | /**
102 | 基础数据结构对象Image,和JSON文件同级目录或者BUNDLE
103 | @param name 名称
104 | @return UIImage
105 | */
106 | + (UIImage *)imageNamed:(NSString *)name;
107 | + (UIImage *)imageForColorType:(NSString *)type size:(CGSize)size;
108 |
109 | /**
110 | 基础数据结构对象 Color
111 | @param type 名称
112 | @return UIColor
113 | */
114 | + (UIColor *)colorForType:(NSString *)type;
115 |
116 | /**
117 | 除Color,Font,Image,Coorderate之外
118 | @param type 名称
119 | @return id值
120 | */
121 | + (id)otherForType:(NSString *)type;
122 |
123 | /**
124 | 基础数据结构对象 Coorderate
125 | @param type 名称 格式:{1,1,1,1}
126 | @return 值
127 | */
128 | + (CGSize)sizeForType:(NSString *)type;
129 | + (CGRect)rectForType:(NSString *)type;
130 | + (CGPoint)pointForType:(NSString *)type;
131 | + (CGVector)vectorForType:(NSString *)type;
132 | + (UIEdgeInsets)edgeInsetsForType:(NSString *)type;
133 | + (CGAffineTransform)affineTransformForType:(NSString *)type;
134 | @end
135 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme/LNThemePicker.h:
--------------------------------------------------------------------------------
1 | //
2 | // LNThemePicker.h
3 | // LNTheme
4 | //
5 | // Created by vvusu on 1/19/17.
6 | // Copyright © 2017 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | typedef NS_ENUM(NSInteger, LNThemePickerType) {
13 | ThemePicker_Nomal = 0,
14 | ThemePicker_Font,
15 | ThemePicker_State,
16 | ThemePicker_CGFloat,
17 | ThemePicker_CGColor,
18 | ThemePicker_EdgeInset,
19 | ThemePicker_StatusBar
20 | };
21 |
22 | typedef id (^LNThemePickerBlock)(void);
23 |
24 | @interface LNThemePicker : NSObject
25 | @property (copy, nonatomic) LNThemePickerBlock block;
26 | @property (assign, nonatomic) LNThemePickerType type;
27 | @property (assign, nonatomic) UIControlState valueState;
28 |
29 | #pragma mark - ThemePicker
30 | + (instancetype)initWithFontType:(NSString *)type;
31 | + (instancetype)initWithColorType:(NSString *)type;
32 | + (instancetype)initWithImageName:(NSString *)name;
33 | + (instancetype)initWithImageColorType:(NSString *)type size:(CGSize)size;
34 | + (instancetype)initWithImageName:(NSString *)name renderingMode:(UIImageRenderingMode)mode;
35 | + (instancetype)initTextAttributesColorType:(NSString *)color font:(NSString *)font;
36 |
37 | #pragma mark - ThemeStatePicker
38 | + (instancetype)initWithColorType:(NSString *)type forState:(UIControlState)state;
39 | + (instancetype)initWithImageName:(NSString *)name forState:(UIControlState)state;
40 | + (instancetype)initWithImageName:(NSString *)name forBarMetrics:(UIBarMetrics)state;
41 | + (instancetype)initWithImageWithColorType:(NSString *)type size:(CGSize)size forState:(UIControlState)state;
42 | + (instancetype)initTextAttributesColorType:(NSString *)color font:(NSString *)font forState:(UIControlState)state;
43 |
44 | #pragma mark - ThemeCGColorPicker
45 | + (instancetype)initWithCGColor:(NSString *)type;
46 |
47 | #pragma mark - ThemeCGFloatPicker
48 | + (instancetype)initWithCGFloat:(CGFloat)num;
49 |
50 | #pragma mark - ThemeEdgeInsetPicker
51 | + (instancetype)initWithImageInsets:(NSString *)type;
52 |
53 | #pragma mark - ThemeStatusBarPicker
54 | + (instancetype)initWithStatusBarAnimated:(BOOL)animated;
55 | @end
56 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme/LNThemePicker.m:
--------------------------------------------------------------------------------
1 | //
2 | // LNThemePicker.m
3 | // LNTheme
4 | //
5 | // Created by vvusu on 1/19/17.
6 | // Copyright © 2017 vvusu. All rights reserved.
7 | //
8 |
9 | #import "LNThemePicker.h"
10 | #import "LNTheme.h"
11 |
12 | @implementation LNThemePicker
13 |
14 | #pragma mark - Base
15 |
16 | + (instancetype)initWithColorType:(NSString *)type {
17 | LNThemePicker *picker = [[LNThemePicker alloc]init];
18 | picker.block = ^() {
19 | return [LNTheme colorForType:type];
20 | };
21 | return picker;
22 | }
23 |
24 | + (instancetype)initWithFontType:(NSString *)type {
25 | LNThemePicker *picker = [[LNThemePicker alloc]init];
26 | picker.type = ThemePicker_Font;
27 | picker.block = ^() {
28 | return [LNTheme fontForType:type];
29 | };
30 | return picker;
31 | }
32 |
33 | + (instancetype)initWithImageName:(NSString *)name {
34 | LNThemePicker *picker = [[LNThemePicker alloc]init];
35 | picker.block = ^() {
36 | return [LNTheme imageNamed:name];
37 | };
38 | return picker;
39 | }
40 |
41 | + (instancetype)initWithImageColorType:(NSString *)type size:(CGSize)size {
42 | LNThemePicker *picker = [[LNThemePicker alloc]init];
43 | picker.block = ^() {
44 | return [LNTheme imageForColorType:type size:size];
45 | };
46 | return picker;
47 | }
48 |
49 | + (instancetype)initWithImageName:(NSString *)name renderingMode:(UIImageRenderingMode)mode {
50 | LNThemePicker *picker = [[LNThemePicker alloc]init];
51 | picker.block = ^() {
52 | return [[LNTheme imageNamed:name] imageWithRenderingMode:mode];
53 | };
54 | return picker;
55 | }
56 |
57 | + (instancetype)initTextAttributesColorType:(NSString *)color font:(NSString *)font {
58 | LNThemePicker *picker = [[LNThemePicker alloc]init];
59 | picker.block = ^() {
60 | NSDictionary *textAttributes = @{NSFontAttributeName:[LNTheme fontForType:font],
61 | NSForegroundColorAttributeName:[LNTheme colorForType:color]};
62 | return textAttributes;
63 | };
64 | return picker;
65 | }
66 |
67 | #pragma mark - UIControlState
68 |
69 | + (instancetype)initWithColorType:(NSString *)type forState:(UIControlState)state {
70 | LNThemePicker *picker = [self initWithColorType:type];
71 | picker.valueState = state;
72 | picker.type = ThemePicker_State;
73 | return picker;
74 | }
75 |
76 | + (instancetype)initWithImageName:(NSString *)name forState:(UIControlState)state {
77 | LNThemePicker *picker = [self initWithImageName:name];
78 | picker.valueState = state;
79 | picker.type = ThemePicker_State;
80 | return picker;
81 | }
82 |
83 | + (instancetype)initWithImageName:(NSString *)name forBarMetrics:(UIBarMetrics)state {
84 | LNThemePicker *picker = [self initWithImageName:name];
85 | picker.type = ThemePicker_State;
86 | picker.valueState = (NSUInteger)state;
87 | return picker;
88 | }
89 |
90 | + (instancetype)initWithImageWithColorType:(NSString *)type size:(CGSize)size forState:(UIControlState)state {
91 | LNThemePicker *picker = [self initWithImageColorType:type size:size];
92 | picker.valueState = state;
93 | picker.type = ThemePicker_State;
94 | return picker;
95 | }
96 |
97 | + (instancetype)initTextAttributesColorType:(NSString *)color font:(NSString *)font forState:(UIControlState)state {
98 | LNThemePicker *picker = [self initTextAttributesColorType:color font:font];
99 | picker.valueState = state;
100 | picker.type = ThemePicker_State;
101 | return picker;
102 | }
103 |
104 | #pragma mark - ThemeCGColorPicker
105 |
106 | + (instancetype)initWithCGColor:(NSString *)type {
107 | LNThemePicker *picker = [[LNThemePicker alloc]init];
108 | picker.type = ThemePicker_CGColor;
109 | picker.block = ^() {
110 | return [LNTheme colorForType:type];
111 | };
112 | return picker;
113 | }
114 |
115 | #pragma mark - ThemeCGFloatPicker
116 |
117 | + (instancetype)initWithCGFloat:(CGFloat)num {
118 | LNThemePicker *picker = [[LNThemePicker alloc]init];
119 | picker.type = ThemePicker_CGFloat;
120 | picker.block = ^() {
121 | return [NSNumber numberWithFloat:num];
122 | };
123 | return picker;
124 | }
125 |
126 | #pragma mark - ThemeEdgeInsetPicker
127 |
128 | + (instancetype)initWithImageInsets:(NSString *)type {
129 | LNThemePicker *picker = [[LNThemePicker alloc]init];
130 | picker.type = ThemePicker_EdgeInset;
131 | picker.block = ^() {
132 | return [NSValue valueWithUIEdgeInsets:[LNTheme edgeInsetsForType:type]];
133 | };
134 | return picker;
135 | }
136 |
137 | #pragma mark - ThemeStatusBarPicker
138 |
139 | + (instancetype)initWithStatusBarAnimated:(BOOL)animated {
140 | LNThemePicker *picker = [[LNThemePicker alloc]init];
141 | picker.type = ThemePicker_StatusBar;
142 | picker.valueState = animated;
143 | picker.block = ^() {
144 | return [NSNumber numberWithFloat:0];
145 | };
146 | return picker;
147 | }
148 |
149 | @end
150 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme/NSObject+LNTheme.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+LNTheme.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 1/16/17.
6 | // Copyright © 2017 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "LNThemePicker.h"
11 |
12 | // 更新完成通知
13 | #define LNThemeUpdateCompletedNotification @"LNThemeUpdateCompletedNotification"
14 |
15 | @interface NSObject (LNTheme)
16 |
17 | @property (strong, nonatomic)NSMutableDictionary *themePickers;
18 | - (void)updateFont;
19 | - (void)updateTheme;
20 | - (void)ln_updateThemeCompleted;
21 | - (void)ln_customFontAction:(id(^)(void))block;
22 | - (void)ln_customThemeAction:(id(^)(void))block;
23 | - (void)setThemePicker:(NSObject *)object selector:(NSString *)sel picker:(LNThemePicker *)picker;
24 | @end
25 |
26 | @interface UIColor (LNTheme)
27 | + (UIColor *)colorWithHexString:(NSString *)hexString;
28 | @end
29 |
30 | @interface UIFont (LNTheme)
31 | + (UIFont *)fontWithHexString:(NSString *)hexString;
32 | @end
33 |
34 | @interface UIApplication (LNTheme)
35 | - (void)ln_setStatusBarAnimated:(BOOL)animated;
36 | @end
37 |
38 | @interface UIView (LNTheme)
39 | - (void)ln_tintColor:(NSString *)type;
40 | - (void)ln_backgroundColor:(NSString *)type;
41 | @end
42 |
43 | @interface UITabBar (LNTheme)
44 | - (void)ln_bartintColor:(NSString *)type;
45 | - (void)ln_backgroundImageNamed:(NSString *)name;
46 | @end
47 |
48 | @interface UITabBarItem (LNTheme)
49 | - (void)ln_imageInsets:(NSString *)type;
50 | - (void)ln_imageNamed:(NSString *)name renderingMode:(UIImageRenderingMode)mode;
51 | - (void)ln_selectedImageNamed:(NSString *)name renderingMode:(UIImageRenderingMode)mode;
52 | - (void)ln_titleTextAttributesColorType:(NSString *)colorType font:(NSString *)fontType forState:(UIControlState)state;
53 | @end
54 |
55 | @interface UINavigationBar (LNTheme)
56 | - (void)ln_bartintColor:(NSString *)type;
57 | - (void)ln_backgroundImageNamed:(NSString *)name forBarMetrics:(UIBarMetrics)state;
58 | - (void)ln_titleTextAttributesColorType:(NSString *)colorType font:(NSString *)fontType;
59 | @end
60 |
61 | @interface UIBarButtonItem (LNTheme)
62 | - (void)ln_tintColor:(NSString *)type;
63 | @end
64 |
65 | @interface UILabel (LNTheme)
66 | - (void)ln_font:(NSString *)type;
67 | - (void)ln_textColor:(NSString *)type;
68 | - (void)ln_shadowColor:(NSString *)type;
69 | - (void)ln_highlightedTextColor:(NSString *)type;
70 | @end
71 |
72 | @interface UIButton (LNTheme)
73 | - (void)ln_titleFont:(NSString *)type;
74 | - (void)ln_titleColor:(NSString *)type forState:(UIControlState)state;
75 | - (void)ln_imageNamed:(NSString *)name forState:(UIControlState)state;
76 | - (void)ln_backgroundImageNamed:(NSString *)name forState:(UIControlState)state;
77 | - (void)ln_backgroundImageWithColorType:(NSString *)type size:(CGSize)size forState:(UIControlState)state;
78 | @end
79 |
80 | @interface UIImageView (LNTheme)
81 | - (void)ln_imageNamed:(NSString *)name;
82 | - (void)ln_imageWithColorType:(NSString *)type size:(CGSize)size;
83 | @end
84 |
85 | @interface CALayer (LNTheme)
86 | - (void)ln_borderColor:(NSString *)type;
87 | - (void)ln_shadowColor:(NSString *)type;
88 | - (void)ln_backgroundColor:(NSString *)type;
89 | @end
90 |
91 | @interface UITextField (LNTheme)
92 | - (void)ln_textFont:(NSString *)type;
93 | - (void)ln_textColor:(NSString *)type;
94 | @end
95 |
96 | @interface UITextView (LNTheme)
97 | - (void)ln_textFont:(NSString *)type;
98 | - (void)ln_textColor:(NSString *)type;
99 | @end
100 |
101 | @interface UISlider (LNTheme)
102 | - (void)ln_thumbTintColor:(NSString *)type;
103 | - (void)ln_minimumTrackTintColor:(NSString *)type;
104 | - (void)ln_maximumTrackTintColor:(NSString *)type;
105 | @end
106 |
107 | @interface UISwitch (LNTheme)
108 | - (void)ln_onTintColor:(NSString *)type;
109 | - (void)ln_thumbTintColor:(NSString *)type;
110 | @end
111 |
112 | @interface UIProgressView (LNTheme)
113 | - (void)ln_trackTintColor:(NSString *)type;
114 | - (void)ln_progressTintColor:(NSString *)type;
115 | @end
116 |
117 | @interface UIPageControl (LNTheme)
118 | - (void)ln_pageIndicatorTintColor:(NSString *)type;
119 | - (void)ln_currentPageIndicatorTintColor:(NSString *)type;
120 | @end
121 |
122 | @interface UISearchBar (LNTheme)
123 | - (void)ln_barTintColor:(NSString *)type;
124 | @end
125 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme/UIImage+Tint.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Tint.h
3 | // LNStock
4 | //
5 | // Created by vvusu on 8/30/16.
6 | // Copyright © 2016 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Tint)
12 | - (UIImage *)imageWithTintColor:(UIColor *)tintColor;
13 | - (UIImage *)imageWithGradientTintColor:(UIColor *)tintColor;
14 | + (UIImage *)imageWithName:(NSString *)name tintColor:(UIColor *)tintColor;
15 | + (UIImage *)imageWithName:(NSString *)name bradientTintColor:(UIColor *)tintColor;
16 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)imageSize;
17 | @end
18 |
--------------------------------------------------------------------------------
/LNTheme/LNTheme/UIImage+Tint.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Tint.m
3 | // LNStock
4 | //
5 | // Created by vvusu on 8/30/16.
6 | // Copyright © 2016 vvusu. All rights reserved.
7 | //
8 |
9 | #import "UIImage+Tint.h"
10 |
11 | @implementation UIImage (Tint)
12 |
13 | + (UIImage *)imageWithName:(NSString *)name tintColor:(UIColor *)tintColor {
14 | UIImage *image = [UIImage imageNamed:name];
15 | if (image) {
16 | return [image imageWithTintColor:tintColor];
17 | } else {
18 | return image;
19 | }
20 | }
21 |
22 | + (UIImage *)imageWithName:(NSString *)name bradientTintColor:(UIColor *)tintColor {
23 | UIImage *image = [UIImage imageNamed:name];
24 | if (image) {
25 | return [image imageWithGradientTintColor:tintColor];
26 | } else {
27 | return image;
28 | }
29 | }
30 |
31 | - (UIImage *)imageWithTintColor:(UIColor *)tintColor {
32 | return [self imageWithTintColor:tintColor blendMode:kCGBlendModeDestinationIn];
33 | }
34 |
35 | - (UIImage *)imageWithGradientTintColor:(UIColor *)tintColor {
36 | return [self imageWithTintColor:tintColor blendMode:kCGBlendModeOverlay];
37 | }
38 |
39 | - (UIImage *)imageWithTintColor:(UIColor *)tintColor blendMode:(CGBlendMode)blendMode {
40 | //We want to keep alpha, set opaque to NO; Use 0.0f for scale to use the scale factor of the device’s main screen.
41 | UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
42 | [tintColor setFill];
43 | CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height);
44 | UIRectFill(bounds);
45 |
46 | //Draw the tinted image in context
47 | [self drawInRect:bounds blendMode:blendMode alpha:1.0f];
48 |
49 | if (blendMode != kCGBlendModeDestinationIn) {
50 | [self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f];
51 | }
52 |
53 | UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();
54 | UIGraphicsEndImageContext();
55 |
56 | return tintedImage;
57 | }
58 |
59 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)imageSize {
60 | UIGraphicsBeginImageContextWithOptions(imageSize, 0, [UIScreen mainScreen].scale);
61 | [color set];
62 | UIRectFill(CGRectMake(0, 0, imageSize.width, imageSize.height));
63 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
64 | UIGraphicsEndImageContext();
65 | return image;
66 | }
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/LNThemeDemo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // LNThemeDemo
4 | //
5 | // Created by vvusu on 3/1/17.
6 | // Copyright © 2017 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/LNThemeDemo/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // LNThemeDemo
4 | //
5 | // Created by vvusu on 3/1/17.
6 | // Copyright © 2017 vvusu. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @interface AppDelegate ()
12 |
13 | @end
14 |
15 | @implementation AppDelegate
16 |
17 |
18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
19 | // Override point for customization after application launch.
20 | return YES;
21 | }
22 |
23 |
24 | - (void)applicationWillResignActive:(UIApplication *)application {
25 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
27 | }
28 |
29 |
30 | - (void)applicationDidEnterBackground:(UIApplication *)application {
31 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
33 | }
34 |
35 |
36 | - (void)applicationWillEnterForeground:(UIApplication *)application {
37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
38 | }
39 |
40 |
41 | - (void)applicationDidBecomeActive:(UIApplication *)application {
42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
43 | }
44 |
45 |
46 | - (void)applicationWillTerminate:(UIApplication *)application {
47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
48 | }
49 |
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-20.0x20.0@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-20.0x20.0@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-20.0x20.0@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-20.0x20.0@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-29.0x29.0@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-29.0x29.0@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-29.0x29.0@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-29.0x29.0@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-40.0x40.0@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-40.0x40.0@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-40.0x40.0@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-40.0x40.0@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-60.0x60.0@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-60.0x60.0@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-60.0x60.0@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/AppIcon-60.0x60.0@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "AppIcon-20.0x20.0@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "AppIcon-20.0x20.0@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "AppIcon-29.0x29.0@2x.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "AppIcon-29.0x29.0@3x.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "AppIcon-40.0x40.0@2x.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "AppIcon-40.0x40.0@3x.png",
37 | "scale" : "3x"
38 | },
39 | {
40 | "size" : "60x60",
41 | "idiom" : "iphone",
42 | "filename" : "AppIcon-60.0x60.0@2x.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "AppIcon-60.0x60.0@3x.png",
49 | "scale" : "3x"
50 | },
51 | {
52 | "idiom" : "ios-marketing",
53 | "size" : "1024x1024",
54 | "scale" : "1x"
55 | }
56 | ],
57 | "info" : {
58 | "version" : 1,
59 | "author" : "xcode"
60 | }
61 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_act_view_btn_back.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_act_view_btn_back@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_act_view_btn_back@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/cm2_act_view_btn_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/cm2_act_view_btn_back.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/cm2_act_view_btn_back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/cm2_act_view_btn_back@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/cm2_act_view_btn_back@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back.imageset/cm2_act_view_btn_back@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_act_view_btn_back_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_act_view_btn_back_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_act_view_btn_back_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/cm2_act_view_btn_back_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/cm2_act_view_btn_back_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/cm2_act_view_btn_back_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/cm2_act_view_btn_back_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/cm2_act_view_btn_back_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_act_view_btn_back_prs.imageset/cm2_act_view_btn_back_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_bg.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_bg@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_bg@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/cm2_btm_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/cm2_btm_bg.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/cm2_btm_bg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/cm2_btm_bg@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/cm2_btm_bg@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg-1.imageset/cm2_btm_bg@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_bg.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_bg@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_bg@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/cm2_btm_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/cm2_btm_bg.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/cm2_btm_bg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/cm2_btm_bg@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/cm2_btm_bg@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg.imageset/cm2_btm_bg@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_bg_night.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_bg_night@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_bg_night@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/cm2_btm_bg_night.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/cm2_btm_bg_night.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/cm2_btm_bg_night@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/cm2_btm_bg_night@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/cm2_btm_bg_night@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg_night.imageset/cm2_btm_bg_night@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_bg_white.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_bg_white@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_bg_white@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/cm2_btm_bg_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/cm2_btm_bg_white.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/cm2_btm_bg_white@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/cm2_btm_bg_white@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/cm2_btm_bg_white@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_bg_white.imageset/cm2_btm_bg_white@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_account.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_account@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_account@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/cm2_btm_icn_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/cm2_btm_icn_account.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/cm2_btm_icn_account@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/cm2_btm_icn_account@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/cm2_btm_icn_account@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account.imageset/cm2_btm_icn_account@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_account_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_account_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_account_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/cm2_btm_icn_account_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/cm2_btm_icn_account_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/cm2_btm_icn_account_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/cm2_btm_icn_account_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/cm2_btm_icn_account_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_account_prs.imageset/cm2_btm_icn_account_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_cmt.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_cmt@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_cmt@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/cm2_btm_icn_cmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/cm2_btm_icn_cmt.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/cm2_btm_icn_cmt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/cm2_btm_icn_cmt@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/cm2_btm_icn_cmt@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_cmt.imageset/cm2_btm_icn_cmt@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_discovery.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_discovery@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_discovery@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/cm2_btm_icn_discovery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/cm2_btm_icn_discovery.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/cm2_btm_icn_discovery@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/cm2_btm_icn_discovery@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/cm2_btm_icn_discovery@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery.imageset/cm2_btm_icn_discovery@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_discovery_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_discovery_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_discovery_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/cm2_btm_icn_discovery_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/cm2_btm_icn_discovery_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/cm2_btm_icn_discovery_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/cm2_btm_icn_discovery_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/cm2_btm_icn_discovery_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_discovery_prs.imageset/cm2_btm_icn_discovery_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_friend.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_friend@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_friend@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/cm2_btm_icn_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/cm2_btm_icn_friend.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/cm2_btm_icn_friend@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/cm2_btm_icn_friend@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/cm2_btm_icn_friend@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend.imageset/cm2_btm_icn_friend@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_friend_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_friend_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_friend_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/cm2_btm_icn_friend_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/cm2_btm_icn_friend_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/cm2_btm_icn_friend_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/cm2_btm_icn_friend_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/cm2_btm_icn_friend_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_friend_prs.imageset/cm2_btm_icn_friend_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_music.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_music@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_music@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/cm2_btm_icn_music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/cm2_btm_icn_music.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/cm2_btm_icn_music@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/cm2_btm_icn_music@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/cm2_btm_icn_music@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music.imageset/cm2_btm_icn_music@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_music_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_music_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_music_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/cm2_btm_icn_music_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/cm2_btm_icn_music_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/cm2_btm_icn_music_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/cm2_btm_icn_music_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/cm2_btm_icn_music_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_music_prs.imageset/cm2_btm_icn_music_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_btm_icn_share.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_btm_icn_share@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_btm_icn_share@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/cm2_btm_icn_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/cm2_btm_icn_share.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/cm2_btm_icn_share@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/cm2_btm_icn_share@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/cm2_btm_icn_share@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_btm_icn_share.imageset/cm2_btm_icn_share@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_icn_back.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_icn_back@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_icn_back@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/cm2_icn_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/cm2_icn_back.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/cm2_icn_back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/cm2_icn_back@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/cm2_icn_back@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_icn_back.imageset/cm2_icn_back@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_live_btn_back.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_live_btn_back@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_live_btn_back@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/cm2_live_btn_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/cm2_live_btn_back.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/cm2_live_btn_back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/cm2_live_btn_back@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/cm2_live_btn_back@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_live_btn_back.imageset/cm2_live_btn_back@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_live_btn_back_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_live_btn_back_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_live_btn_back_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/cm2_live_btn_back_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/cm2_live_btn_back_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/cm2_live_btn_back_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/cm2_live_btn_back_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/cm2_live_btn_back_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_live_btn_back_prs.imageset/cm2_live_btn_back_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_mv_btn_back.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_mv_btn_back@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_mv_btn_back@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/cm2_mv_btn_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/cm2_mv_btn_back.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/cm2_mv_btn_back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/cm2_mv_btn_back@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/cm2_mv_btn_back@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back.imageset/cm2_mv_btn_back@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_mv_btn_back_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_mv_btn_back_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_mv_btn_back_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/cm2_mv_btn_back_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/cm2_mv_btn_back_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/cm2_mv_btn_back_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/cm2_mv_btn_back_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/cm2_mv_btn_back_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_mv_btn_back_prs.imageset/cm2_mv_btn_back_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_topbar_bg.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_topbar_bg@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_topbar_bg@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/cm2_topbar_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/cm2_topbar_bg.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/cm2_topbar_bg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/cm2_topbar_bg@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/cm2_topbar_bg@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_bg.imageset/cm2_topbar_bg@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg_ios6.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_topbar_bg_ios6.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_topbar_bg_ios6@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg_ios6.imageset/cm2_topbar_bg_ios6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_bg_ios6.imageset/cm2_topbar_bg_ios6.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_bg_ios6.imageset/cm2_topbar_bg_ios6@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_bg_ios6.imageset/cm2_topbar_bg_ios6@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_topbar_icn_back.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_topbar_icn_back@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_topbar_icn_back@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/cm2_topbar_icn_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/cm2_topbar_icn_back.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/cm2_topbar_icn_back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/cm2_topbar_icn_back@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/cm2_topbar_icn_back@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back.imageset/cm2_topbar_icn_back@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "cm2_topbar_icn_back_prs.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "cm2_topbar_icn_back_prs@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "cm2_topbar_icn_back_prs@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/cm2_topbar_icn_back_prs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/cm2_topbar_icn_back_prs.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/cm2_topbar_icn_back_prs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/cm2_topbar_icn_back_prs@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/cm2_topbar_icn_back_prs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/cm2_topbar_icn_back_prs.imageset/cm2_topbar_icn_back_prs@3x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/navigationbar_background.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navigationbar_background.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navigationbar_background@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/navigationbar_background.imageset/navigationbar_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/navigationbar_background.imageset/navigationbar_background.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/navigationbar_background.imageset/navigationbar_background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/navigationbar_background.imageset/navigationbar_background@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/navigationbar_background_os7.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navigationbar_background_os7.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navigationbar_background_os7@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/navigationbar_background_os7.imageset/navigationbar_background_os7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/navigationbar_background_os7.imageset/navigationbar_background_os7.png
--------------------------------------------------------------------------------
/LNThemeDemo/Assets.xcassets/navigationbar_background_os7.imageset/navigationbar_background_os7@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Assets.xcassets/navigationbar_background_os7.imageset/navigationbar_background_os7@2x.png
--------------------------------------------------------------------------------
/LNThemeDemo/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/LNThemeDemo/BaseVC/NavController.h:
--------------------------------------------------------------------------------
1 | //
2 | // NavController.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/30/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NavController : UINavigationController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LNThemeDemo/BaseVC/NavController.m:
--------------------------------------------------------------------------------
1 | //
2 | // NavController.m
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/30/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import "NavController.h"
10 | #import
11 |
12 | @interface NavController ()
13 |
14 | @end
15 |
16 | @implementation NavController
17 |
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 | self.view.backgroundColor = [UIColor whiteColor];
21 | //设置主题颜色
22 | UINavigationBar *navBar = [[UINavigationBar alloc] init];
23 | [navBar ln_backgroundImageNamed:@"cm2_topbar_bg" forBarMetrics:UIBarMetricsDefault];
24 | [navBar ln_titleTextAttributesColorType:@"ctabh" font:@"f4"];
25 | [self setValue:navBar forKey:@"navigationBar"];
26 | //自定义返回按钮
27 | UIImage *backButtonImage = [[LNTheme imageNamed:@"cm2_topbar_icn_back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 20, 0, 0)];
28 | [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
29 | //将返回按钮的文字position设置不在屏幕上显示
30 | [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(NSIntegerMin, NSIntegerMin) forBarMetrics:UIBarMetricsDefault];
31 | }
32 |
33 | - (void)didReceiveMemoryWarning {
34 | [super didReceiveMemoryWarning];
35 | // Dispose of any resources that can be recreated.
36 | }
37 |
38 | - (UIStatusBarStyle)preferredStatusBarStyle {
39 | return UIStatusBarStyleLightContent;
40 | }
41 |
42 | - (void)viewWillLayoutSubviews {
43 |
44 | }
45 | @end
46 |
--------------------------------------------------------------------------------
/LNThemeDemo/BaseVC/TabBarController.h:
--------------------------------------------------------------------------------
1 | //
2 | // TabBarController.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/29/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface TabBarController : UITabBarController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LNThemeDemo/BaseVC/TabBarController.m:
--------------------------------------------------------------------------------
1 | //
2 | // TabBarController.m
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/29/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import "TabBarController.h"
10 | #import "LNTheme.h"
11 |
12 | @interface TabBarController ()
13 | @property (weak, nonatomic) IBOutlet UITabBar *lnTabBar;
14 |
15 | @end
16 |
17 | @implementation TabBarController
18 |
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 | self.lnTabBar.barStyle = UIBarStyleBlack;
22 | [self.lnTabBar ln_backgroundImageNamed:@"cm2_btm_bg"];
23 |
24 | NSArray *normalImages = @[@"cm2_btm_icn_discovery",@"cm2_btm_icn_music",@"cm2_btm_icn_friend",@"cm2_btm_icn_account"];
25 | NSArray *prsImages = @[@"cm2_btm_icn_discovery_prs",@"cm2_btm_icn_music_prs",@"cm2_btm_icn_friend_prs",@"cm2_btm_icn_account_prs"];
26 | for (NSInteger i = 0; i < self.lnTabBar.items.count; i++) {
27 | UITabBarItem *item = self.lnTabBar.items[i];
28 | [item ln_imageInsets:@"NMTabBarBadgeTextViewOriginOffset"];
29 | [item ln_imageNamed:normalImages[i] renderingMode:UIImageRenderingModeAlwaysOriginal];
30 | [item ln_selectedImageNamed:prsImages[i] renderingMode:UIImageRenderingModeAlwaysOriginal];
31 | [item ln_titleTextAttributesColorType:@"ctabn" font:@"f2" forState:UIControlStateNormal];
32 | [item ln_titleTextAttributesColorType:@"ctabn" font:@"f2" forState:UIControlStateSelected];
33 | }
34 | }
35 |
36 | - (void)didReceiveMemoryWarning {
37 | [super didReceiveMemoryWarning];
38 | // Dispose of any resources that can be recreated.
39 | }
40 |
41 | /*
42 | 十六进制透明度
43 | 100% — FF
44 | 99% — FC
45 | 98% — FA
46 | 97% — F7
47 | 96% — F5
48 | 95% — F2
49 | 94% — F0
50 | 93% — ED
51 | 92% — EB
52 | 91% — E8
53 | 90% — E6
54 | 89% — E3
55 | 88% — E0
56 | 87% — DE
57 | 86% — DB
58 | 85% — D9
59 | 84% — D6
60 | 83% — D4
61 | 82% — D1
62 | 81% — CF
63 | 80% — CC
64 | 79% — C9
65 | 78% — C7
66 | 77% — C4
67 | 76% — C2
68 | 75% — BF
69 | 74% — BD
70 | 73% — BA
71 | 72% — B8
72 | 71% — B5
73 | 70% — B3
74 | 69% — B0
75 | 68% — AD
76 | 67% — AB
77 | 66% — A8
78 | 65% — A6
79 | 64% — A3
80 | 63% — A1
81 | 62% — 9E
82 | 61% — 9C
83 | 60% — 99
84 | 59% — 96
85 | 58% — 94
86 | 57% — 91
87 | 56% — 8F
88 | 55% — 8C
89 | 54% — 8A
90 | 53% — 87
91 | 52% — 85
92 | 51% — 82
93 | 50% — 80
94 | 49% — 7D
95 | 48% — 7A
96 | 47% — 78
97 | 46% — 75
98 | 45% — 73
99 | 44% — 70
100 | 43% — 6E
101 | 42% — 6B
102 | 41% — 69
103 | 40% — 66
104 | 39% — 63
105 | 38% — 61
106 | 37% — 5E
107 | 36% — 5C
108 | 35% — 59
109 | 34% — 57
110 | 33% — 54
111 | 32% — 52
112 | 31% — 4F
113 | 30% — 4D
114 | 29% — 4A
115 | 28% — 47
116 | 27% — 45
117 | 26% — 42
118 | 25% — 40
119 | 24% — 3D
120 | 23% — 3B
121 | 22% — 38
122 | 21% — 36
123 | 20% — 33
124 | 19% — 30
125 | 18% — 2E
126 | 17% — 2B
127 | 16% — 29
128 | 15% — 26
129 | 14% — 24
130 | 13% — 21
131 | 12% — 1F
132 | 11% — 1C
133 | 10% — 1A
134 | 9% — 17
135 | 8% — 14
136 | 7% — 12
137 | 6% — 0F
138 | 5% — 0D
139 | 4% — 0A
140 | 3% — 08
141 | 2% — 05
142 | 1% — 03
143 | 0% — 00
144 | */
145 |
146 | @end
147 |
--------------------------------------------------------------------------------
/LNThemeDemo/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | LNTheme
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | NSAppTransportSecurity
26 |
27 | NSAllowsArbitraryLoads
28 |
29 |
30 | UILaunchStoryboardName
31 | LaunchScreen
32 | UIMainStoryboardFile
33 | Main
34 | UIRequiredDeviceCapabilities
35 |
36 | armv7
37 |
38 | UISupportedInterfaceOrientations
39 |
40 | UIInterfaceOrientationPortrait
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Libraries/.DS_Store
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/FLAnimatedImage/FLAnimatedImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // FLAnimatedImage.h
3 | // Flipboard
4 | //
5 | // Created by Raphael Schaad on 7/8/13.
6 | // Copyright (c) 2013-2015 Flipboard. All rights reserved.
7 | //
8 |
9 |
10 | #import
11 |
12 | // Allow user classes conveniently just importing one header.
13 | #import "FLAnimatedImageView.h"
14 |
15 |
16 | #ifndef NS_DESIGNATED_INITIALIZER
17 | #if __has_attribute(objc_designated_initializer)
18 | #define NS_DESIGNATED_INITIALIZER __attribute((objc_designated_initializer))
19 | #else
20 | #define NS_DESIGNATED_INITIALIZER
21 | #endif
22 | #endif
23 |
24 | extern const NSTimeInterval kFLAnimatedImageDelayTimeIntervalMinimum;
25 |
26 | //
27 | // An `FLAnimatedImage`'s job is to deliver frames in a highly performant way and works in conjunction with `FLAnimatedImageView`.
28 | // It subclasses `NSObject` and not `UIImage` because it's only an "image" in the sense that a sea lion is a lion.
29 | // It tries to intelligently choose the frame cache size depending on the image and memory situation with the goal to lower CPU usage for smaller ones, lower memory usage for larger ones and always deliver frames for high performant play-back.
30 | // Note: `posterImage`, `size`, `loopCount`, `delayTimes` and `frameCount` don't change after successful initialization.
31 | //
32 | @interface FLAnimatedImage : NSObject
33 |
34 | @property (nonatomic, strong, readonly) UIImage *posterImage; // Guaranteed to be loaded; usually equivalent to `-imageLazilyCachedAtIndex:0`
35 | @property (nonatomic, assign, readonly) CGSize size; // The `.posterImage`'s `.size`
36 |
37 | @property (nonatomic, assign, readonly) NSUInteger loopCount; // 0 means repeating the animation indefinitely
38 | @property (nonatomic, strong, readonly) NSDictionary *delayTimesForIndexes; // Of type `NSTimeInterval` boxed in `NSNumber`s
39 | @property (nonatomic, assign, readonly) NSUInteger frameCount; // Number of valid frames; equal to `[.delayTimes count]`
40 |
41 | @property (nonatomic, assign, readonly) NSUInteger frameCacheSizeCurrent; // Current size of intelligently chosen buffer window; can range in the interval [1..frameCount]
42 | @property (nonatomic, assign) NSUInteger frameCacheSizeMax; // Allow to cap the cache size; 0 means no specific limit (default)
43 |
44 | // Intended to be called from main thread synchronously; will return immediately.
45 | // If the result isn't cached, will return `nil`; the caller should then pause playback, not increment frame counter and keep polling.
46 | // After an initial loading time, depending on `frameCacheSize`, frames should be available immediately from the cache.
47 | - (UIImage *)imageLazilyCachedAtIndex:(NSUInteger)index;
48 |
49 | // Pass either a `UIImage` or an `FLAnimatedImage` and get back its size
50 | + (CGSize)sizeForImage:(id)image;
51 |
52 | // On success, the initializers return an `FLAnimatedImage` with all fields initialized, on failure they return `nil` and an error will be logged.
53 | - (instancetype)initWithAnimatedGIFData:(NSData *)data;
54 | // Pass 0 for optimalFrameCacheSize to get the default, predrawing is enabled by default.
55 | - (instancetype)initWithAnimatedGIFData:(NSData *)data optimalFrameCacheSize:(NSUInteger)optimalFrameCacheSize predrawingEnabled:(BOOL)isPredrawingEnabled NS_DESIGNATED_INITIALIZER;
56 | + (instancetype)animatedImageWithGIFData:(NSData *)data;
57 |
58 | @property (nonatomic, strong, readonly) NSData *data; // The data the receiver was initialized with; read-only
59 |
60 | @end
61 |
62 | typedef NS_ENUM(NSUInteger, FLLogLevel) {
63 | FLLogLevelNone = 0,
64 | FLLogLevelError,
65 | FLLogLevelWarn,
66 | FLLogLevelInfo,
67 | FLLogLevelDebug,
68 | FLLogLevelVerbose
69 | };
70 |
71 | @interface FLAnimatedImage (Logging)
72 |
73 | + (void)setLogBlock:(void (^)(NSString *logString, FLLogLevel logLevel))logBlock logLevel:(FLLogLevel)logLevel;
74 | + (void)logStringFromBlock:(NSString *(^)(void))stringBlock withLevel:(FLLogLevel)level;
75 |
76 | @end
77 |
78 | #define FLLog(logLevel, format, ...) [FLAnimatedImage logStringFromBlock:^NSString *{ return [NSString stringWithFormat:(format), ## __VA_ARGS__]; } withLevel:(logLevel)]
79 |
80 | @interface FLWeakProxy : NSProxy
81 |
82 | + (instancetype)weakProxyForObject:(id)targetObject;
83 |
84 | @end
85 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/FLAnimatedImage/FLAnimatedImageView.h:
--------------------------------------------------------------------------------
1 | //
2 | // FLAnimatedImageView.h
3 | // Flipboard
4 | //
5 | // Created by Raphael Schaad on 7/8/13.
6 | // Copyright (c) 2013-2015 Flipboard. All rights reserved.
7 | //
8 |
9 |
10 | #import
11 |
12 | @class FLAnimatedImage;
13 | @protocol FLAnimatedImageViewDebugDelegate;
14 |
15 |
16 | //
17 | // An `FLAnimatedImageView` can take an `FLAnimatedImage` and plays it automatically when in view hierarchy and stops when removed.
18 | // The animation can also be controlled with the `UIImageView` methods `-start/stop/isAnimating`.
19 | // It is a fully compatible `UIImageView` subclass and can be used as a drop-in component to work with existing code paths expecting to display a `UIImage`.
20 | // Under the hood it uses a `CADisplayLink` for playback, which can be inspected with `currentFrame` & `currentFrameIndex`.
21 | //
22 | @interface FLAnimatedImageView : UIImageView
23 |
24 | // Setting `[UIImageView.image]` to a non-`nil` value clears out existing `animatedImage`.
25 | // And vice versa, setting `animatedImage` will initially populate the `[UIImageView.image]` to its `posterImage` and then start animating and hold `currentFrame`.
26 | @property (nonatomic, strong) FLAnimatedImage *animatedImage;
27 | @property (nonatomic, copy) void(^loopCompletionBlock)(NSUInteger loopCountRemaining);
28 |
29 | @property (nonatomic, strong, readonly) UIImage *currentFrame;
30 | @property (nonatomic, assign, readonly) NSUInteger currentFrameIndex;
31 |
32 | // The animation runloop mode. Enables playback during scrolling by allowing timer events (i.e. animation) with NSRunLoopCommonModes.
33 | // To keep scrolling smooth on single-core devices such as iPhone 3GS/4 and iPod Touch 4th gen, the default run loop mode is NSDefaultRunLoopMode. Otherwise, the default is NSDefaultRunLoopMode.
34 | @property (nonatomic, copy) NSString *runLoopMode;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/GoldZip/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Libraries/GoldZip/.DS_Store
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/GoldZip/GoldZipLoader.h:
--------------------------------------------------------------------------------
1 | //
2 | // GoldZipLoader.h
3 | // GoldZIPFramework
4 | //
5 | // Created by Micker on 16/9/12.
6 | // Copyright © 2016年 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface GoldZipLoader : NSObject
12 |
13 | + (void) downloadFile:(NSURL *) downloadURL destination:(NSString *) destination block:(void(^)(NSError *error))callback;
14 |
15 | + (void)setLogger:(void(^)(NSString *log))logger;
16 |
17 | + (NSString *) fileAtLibrary:(NSString *) path;
18 |
19 | + (NSString *)fileMD5:(NSString *)filePath;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/GoldZip/libs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Libraries/GoldZip/libs/.DS_Store
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/GoldZip/libs/ZipArchive.h:
--------------------------------------------------------------------------------
1 | /**
2 | // @header ZipArchive.h
3 | //
4 | // An objective C wrapper for minizip and libz for creating and exanding ZIP files.
5 | //
6 | // @author Created by aish on 08-9-11.
7 | // acsolu@gmail.com
8 | // @copyright Copyright 2008 Inc. All rights reserved.
9 | //
10 | */
11 |
12 | #import
13 |
14 |
15 | /**
16 | a block that is called from UnzipFileTo:overwrite:withProgressBlock: where the percentage of
17 | files processed (as an integer from 0 to 100), the number of files processed so far and the
18 | total number of files in the archive is called after each file is processed.
19 | */
20 | typedef void(^ZipArchiveProgressUpdateBlock)(int percentage, int filesProcessed, unsigned long numFiles);
21 |
22 | /**
23 | @protocol
24 | @discussion methods for a delegate to receive error notifications and control overwriting of files
25 | */
26 |
27 | @protocol ZipArchiveDelegate
28 | @optional
29 |
30 | /**
31 | @brief Delegate method to be notified of errors
32 |
33 | ZipArchive calls this selector on the delegate when errors are encountered.
34 |
35 | @param msg a string describing the error.
36 | @result void
37 | */
38 |
39 | -(void) ErrorMessage:(NSString*) msg;
40 |
41 | /**
42 | @brief Delegate method to determine if a file should be replaced
43 |
44 | When an zip file is being expanded and a file is about to be replaced, this selector
45 | is called on the delegate to notify that file is about to be replaced. The delegate method
46 | should return YES to overwrite the file, or NO to skip it.
47 |
48 | @param file - path to the file to be overwritten.
49 | @result a BOOL - YES to replace, NO to skip
50 | */
51 |
52 | -(BOOL) OverWriteOperation:(NSString*) file;
53 |
54 | @end
55 |
56 | /**
57 | @class
58 | @brief An object that can create zip files and expand existing ones.
59 | This class provides methods to create a zip file (optionally with a password) and
60 | add files to that zip archive.
61 |
62 | It also provides methods to expand an existing archive file (optionally with a password),
63 | and extract the files.
64 | */
65 |
66 | @interface ZipArchive : NSObject {
67 | @private
68 | void* _zipFile;
69 | void* _unzFile;
70 |
71 | unsigned long _numFiles;
72 | NSString* _password;
73 | __weak id _delegate;
74 | ZipArchiveProgressUpdateBlock _progressBlock;
75 |
76 | NSArray* _unzippedFiles;
77 |
78 | NSFileManager* _fileManager;
79 | NSStringEncoding _stringEncoding;
80 | }
81 |
82 | /** a delegate object conforming to ZipArchiveDelegate protocol */
83 | @property (nonatomic, weak) id delegate;
84 | @property (nonatomic, readonly) unsigned long numFiles;
85 | @property (nonatomic, copy) ZipArchiveProgressUpdateBlock progressBlock;
86 |
87 | /**
88 | @brief String encoding to be used when interpreting file names in the zip file.
89 | */
90 | @property (nonatomic, assign) NSStringEncoding stringEncoding;
91 |
92 | /** an array of files that were successfully expanded. Available after calling UnzipFileTo:overWrite: */
93 | @property (nonatomic, readonly,strong) NSArray *unzippedFiles;
94 |
95 | -(id) initWithFileManager:(NSFileManager*) fileManager;
96 |
97 | -(BOOL) CreateZipFile2:(NSString*) zipFile;
98 | -(BOOL) CreateZipFile2:(NSString*) zipFile Password:(NSString*) password;
99 | -(BOOL) addFileToZip:(NSString*) file newname:(NSString*) newname;
100 | -(BOOL) CloseZipFile2;
101 |
102 | -(BOOL) UnzipOpenFile:(NSString*) zipFile;
103 | -(BOOL) UnzipOpenFile:(NSString*) zipFile Password:(NSString*) password;
104 | -(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite;
105 | -(BOOL) UnzipCloseFile;
106 | -(NSArray*) getZipFileContents; // list the contents of the zip archive. must be called after UnzipOpenFile
107 |
108 | @end
109 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/GoldZip/libs/minizip/mztools.h:
--------------------------------------------------------------------------------
1 | /*
2 | Additional tools for Minizip
3 | Code: Xavier Roche '2004
4 | License: Same as ZLIB (www.gzip.org)
5 | */
6 |
7 | #ifndef _zip_tools_H
8 | #define _zip_tools_H
9 |
10 | #ifdef __cplusplus
11 | extern "C" {
12 | #endif
13 |
14 | #ifndef _ZLIB_H
15 | #include "zlib.h"
16 | #endif
17 |
18 | #include "unzip.h"
19 |
20 | /* Repair a ZIP file (missing central directory)
21 | file: file to recover
22 | fileOut: output file after recovery
23 | fileOutTmp: temporary file name used for recovery
24 | */
25 | extern int ZEXPORT unzRepair(const char* file,
26 | const char* fileOut,
27 | const char* fileOutTmp,
28 | uLong* nRecovered,
29 | uLong* bytesRecovered);
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/MBProgressHUD/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/LNThemeDemo/Libraries/MBProgressHUD/.DS_Store
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/FLAnimatedImage/FLAnimatedImageView+WebCache.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "FLAnimatedImageView+WebCache.h"
10 |
11 | #if SD_UIKIT
12 | #import "objc/runtime.h"
13 | #import "UIView+WebCacheOperation.h"
14 | #import "UIView+WebCache.h"
15 | #import "NSData+ImageContentType.h"
16 | #import "FLAnimatedImage.h"
17 | #import "UIImageView+WebCache.h"
18 |
19 | @implementation FLAnimatedImageView (WebCache)
20 |
21 | - (void)sd_setImageWithURL:(nullable NSURL *)url {
22 | [self sd_setImageWithURL:url placeholderImage:nil options:0 progress:nil completed:nil];
23 | }
24 |
25 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder {
26 | [self sd_setImageWithURL:url placeholderImage:placeholder options:0 progress:nil completed:nil];
27 | }
28 |
29 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder options:(SDWebImageOptions)options {
30 | [self sd_setImageWithURL:url placeholderImage:placeholder options:options progress:nil completed:nil];
31 | }
32 |
33 | - (void)sd_setImageWithURL:(nullable NSURL *)url completed:(nullable SDExternalCompletionBlock)completedBlock {
34 | [self sd_setImageWithURL:url placeholderImage:nil options:0 progress:nil completed:completedBlock];
35 | }
36 |
37 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder completed:(nullable SDExternalCompletionBlock)completedBlock {
38 | [self sd_setImageWithURL:url placeholderImage:placeholder options:0 progress:nil completed:completedBlock];
39 | }
40 |
41 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder options:(SDWebImageOptions)options completed:(nullable SDExternalCompletionBlock)completedBlock {
42 | [self sd_setImageWithURL:url placeholderImage:placeholder options:options progress:nil completed:completedBlock];
43 | }
44 |
45 | - (void)sd_setImageWithURL:(nullable NSURL *)url
46 | placeholderImage:(nullable UIImage *)placeholder
47 | options:(SDWebImageOptions)options
48 | progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
49 | completed:(nullable SDExternalCompletionBlock)completedBlock {
50 | __weak typeof(self)weakSelf = self;
51 | [self sd_internalSetImageWithURL:url
52 | placeholderImage:placeholder
53 | options:options
54 | operationKey:nil
55 | setImageBlock:^(UIImage *image, NSData *imageData) {
56 | SDImageFormat imageFormat = [NSData sd_imageFormatForImageData:imageData];
57 | if (imageFormat == SDImageFormatGIF) {
58 | weakSelf.animatedImage = [FLAnimatedImage animatedImageWithGIFData:imageData];
59 | weakSelf.image = nil;
60 | } else {
61 | weakSelf.image = image;
62 | weakSelf.animatedImage = nil;
63 | }
64 | }
65 | progress:progressBlock
66 | completed:completedBlock];
67 | }
68 |
69 | @end
70 |
71 | #endif
72 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/MKAnnotationView+WebCache.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if SD_UIKIT || SD_MAC
12 |
13 | #import
14 | #import "SDWebImageManager.h"
15 |
16 | /**
17 | * Integrates SDWebImage async downloading and caching of remote images with MKAnnotationView.
18 | */
19 | @interface MKAnnotationView (WebCache)
20 |
21 | /**
22 | * Set the imageView `image` with an `url`.
23 | *
24 | * The download is asynchronous and cached.
25 | *
26 | * @param url The url for the image.
27 | */
28 | - (void)sd_setImageWithURL:(nullable NSURL *)url;
29 |
30 | /**
31 | * Set the imageView `image` with an `url` and a placeholder.
32 | *
33 | * The download is asynchronous and cached.
34 | *
35 | * @param url The url for the image.
36 | * @param placeholder The image to be set initially, until the image request finishes.
37 | * @see sd_setImageWithURL:placeholderImage:options:
38 | */
39 | - (void)sd_setImageWithURL:(nullable NSURL *)url
40 | placeholderImage:(nullable UIImage *)placeholder;
41 |
42 | /**
43 | * Set the imageView `image` with an `url`, placeholder and custom options.
44 | *
45 | * The download is asynchronous and cached.
46 | *
47 | * @param url The url for the image.
48 | * @param placeholder The image to be set initially, until the image request finishes.
49 | * @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values.
50 | */
51 |
52 | - (void)sd_setImageWithURL:(nullable NSURL *)url
53 | placeholderImage:(nullable UIImage *)placeholder
54 | options:(SDWebImageOptions)options;
55 |
56 | /**
57 | * Set the imageView `image` with an `url`.
58 | *
59 | * The download is asynchronous and cached.
60 | *
61 | * @param url The url for the image.
62 | * @param completedBlock A block called when operation has been completed. This block has no return value
63 | * and takes the requested UIImage as first parameter. In case of error the image parameter
64 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
65 | * indicating if the image was retrieved from the local cache or from the network.
66 | * The fourth parameter is the original image url.
67 | */
68 | - (void)sd_setImageWithURL:(nullable NSURL *)url
69 | completed:(nullable SDExternalCompletionBlock)completedBlock;
70 |
71 | /**
72 | * Set the imageView `image` with an `url`, placeholder.
73 | *
74 | * The download is asynchronous and cached.
75 | *
76 | * @param url The url for the image.
77 | * @param placeholder The image to be set initially, until the image request finishes.
78 | * @param completedBlock A block called when operation has been completed. This block has no return value
79 | * and takes the requested UIImage as first parameter. In case of error the image parameter
80 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
81 | * indicating if the image was retrieved from the local cache or from the network.
82 | * The fourth parameter is the original image url.
83 | */
84 | - (void)sd_setImageWithURL:(nullable NSURL *)url
85 | placeholderImage:(nullable UIImage *)placeholder
86 | completed:(nullable SDExternalCompletionBlock)completedBlock;
87 |
88 | /**
89 | * Set the imageView `image` with an `url`, placeholder and custom options.
90 | *
91 | * The download is asynchronous and cached.
92 | *
93 | * @param url The url for the image.
94 | * @param placeholder The image to be set initially, until the image request finishes.
95 | * @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values.
96 | * @param completedBlock A block called when operation has been completed. This block has no return value
97 | * and takes the requested UIImage as first parameter. In case of error the image parameter
98 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
99 | * indicating if the image was retrieved from the local cache or from the network.
100 | * The fourth parameter is the original image url.
101 | */
102 | - (void)sd_setImageWithURL:(nullable NSURL *)url
103 | placeholderImage:(nullable UIImage *)placeholder
104 | options:(SDWebImageOptions)options
105 | completed:(nullable SDExternalCompletionBlock)completedBlock;
106 |
107 | @end
108 |
109 | #endif
110 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/MKAnnotationView+WebCache.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "MKAnnotationView+WebCache.h"
10 |
11 | #if SD_UIKIT || SD_MAC
12 |
13 | #import "objc/runtime.h"
14 | #import "UIView+WebCacheOperation.h"
15 | #import "UIView+WebCache.h"
16 |
17 | @implementation MKAnnotationView (WebCache)
18 |
19 | - (void)sd_setImageWithURL:(nullable NSURL *)url {
20 | [self sd_setImageWithURL:url placeholderImage:nil options:0 completed:nil];
21 | }
22 |
23 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder {
24 | [self sd_setImageWithURL:url placeholderImage:placeholder options:0 completed:nil];
25 | }
26 |
27 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder options:(SDWebImageOptions)options {
28 | [self sd_setImageWithURL:url placeholderImage:placeholder options:options completed:nil];
29 | }
30 |
31 | - (void)sd_setImageWithURL:(nullable NSURL *)url completed:(nullable SDExternalCompletionBlock)completedBlock {
32 | [self sd_setImageWithURL:url placeholderImage:nil options:0 completed:completedBlock];
33 | }
34 |
35 | - (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder completed:(nullable SDExternalCompletionBlock)completedBlock {
36 | [self sd_setImageWithURL:url placeholderImage:placeholder options:0 completed:completedBlock];
37 | }
38 |
39 | - (void)sd_setImageWithURL:(nullable NSURL *)url
40 | placeholderImage:(nullable UIImage *)placeholder
41 | options:(SDWebImageOptions)options
42 | completed:(nullable SDExternalCompletionBlock)completedBlock {
43 | __weak typeof(self)weakSelf = self;
44 | [self sd_internalSetImageWithURL:url
45 | placeholderImage:placeholder
46 | options:options
47 | operationKey:nil
48 | setImageBlock:^(UIImage *image, NSData *imageData) {
49 | weakSelf.image = image;
50 | }
51 | progress:nil
52 | completed:completedBlock];
53 | }
54 |
55 | @end
56 |
57 | #endif
58 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/NSData+ImageContentType.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | * (c) Fabrice Aneche
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 |
10 | #import
11 | #import "SDWebImageCompat.h"
12 |
13 | typedef NS_ENUM(NSInteger, SDImageFormat) {
14 | SDImageFormatUndefined = -1,
15 | SDImageFormatJPEG = 0,
16 | SDImageFormatPNG,
17 | SDImageFormatGIF,
18 | SDImageFormatTIFF,
19 | SDImageFormatWebP
20 | };
21 |
22 | @interface NSData (ImageContentType)
23 |
24 | /**
25 | * Return image format
26 | *
27 | * @param data the input image data
28 | *
29 | * @return the image format as `SDImageFormat` (enum)
30 | */
31 | + (SDImageFormat)sd_imageFormatForImageData:(nullable NSData *)data;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/NSData+ImageContentType.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | * (c) Fabrice Aneche
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 |
10 | #import "NSData+ImageContentType.h"
11 |
12 |
13 | @implementation NSData (ImageContentType)
14 |
15 | + (SDImageFormat)sd_imageFormatForImageData:(nullable NSData *)data {
16 | if (!data) {
17 | return SDImageFormatUndefined;
18 | }
19 |
20 | uint8_t c;
21 | [data getBytes:&c length:1];
22 | switch (c) {
23 | case 0xFF:
24 | return SDImageFormatJPEG;
25 | case 0x89:
26 | return SDImageFormatPNG;
27 | case 0x47:
28 | return SDImageFormatGIF;
29 | case 0x49:
30 | case 0x4D:
31 | return SDImageFormatTIFF;
32 | case 0x52:
33 | // R as RIFF for WEBP
34 | if (data.length < 12) {
35 | return SDImageFormatUndefined;
36 | }
37 |
38 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
39 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
40 | return SDImageFormatWebP;
41 | }
42 | }
43 | return SDImageFormatUndefined;
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/NSImage+WebCache.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if SD_MAC
12 |
13 | #import
14 |
15 | @interface NSImage (WebCache)
16 |
17 | - (CGImageRef)CGImage;
18 | - (NSArray *)images;
19 | - (BOOL)isGIF;
20 |
21 | @end
22 |
23 | #endif
24 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/NSImage+WebCache.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "NSImage+WebCache.h"
10 |
11 | #if SD_MAC
12 |
13 | @implementation NSImage (WebCache)
14 |
15 | - (CGImageRef)CGImage {
16 | NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height);
17 | CGImageRef cgImage = [self CGImageForProposedRect:&imageRect context:NULL hints:nil];
18 | return cgImage;
19 | }
20 |
21 | - (NSArray *)images {
22 | return nil;
23 | }
24 |
25 | - (BOOL)isGIF {
26 | return NO;
27 | }
28 |
29 | @end
30 |
31 | #endif
32 |
33 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDImageCacheConfig.h:
--------------------------------------------------------------------------------
1 | //
2 | // SDImageCacheConfig.h
3 | // SDWebImage
4 | //
5 | // Created by Bogdan on 09/09/16.
6 | // Copyright © 2016 Dailymotion. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "SDWebImageCompat.h"
11 |
12 | @interface SDImageCacheConfig : NSObject
13 |
14 | /**
15 | * Decompressing images that are downloaded and cached can improve performance but can consume lot of memory.
16 | * Defaults to YES. Set this to NO if you are experiencing a crash due to excessive memory consumption.
17 | */
18 | @property (assign, nonatomic) BOOL shouldDecompressImages;
19 |
20 | /**
21 | * disable iCloud backup [defaults to YES]
22 | */
23 | @property (assign, nonatomic) BOOL shouldDisableiCloud;
24 |
25 | /**
26 | * use memory cache [defaults to YES]
27 | */
28 | @property (assign, nonatomic) BOOL shouldCacheImagesInMemory;
29 |
30 | /**
31 | * The maximum length of time to keep an image in the cache, in seconds
32 | */
33 | @property (assign, nonatomic) NSInteger maxCacheAge;
34 |
35 | /**
36 | * The maximum size of the cache, in bytes.
37 | */
38 | @property (assign, nonatomic) NSUInteger maxCacheSize;
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDImageCacheConfig.m:
--------------------------------------------------------------------------------
1 | //
2 | // SDImageCacheConfig.m
3 | // SDWebImage
4 | //
5 | // Created by Bogdan on 09/09/16.
6 | // Copyright © 2016 Dailymotion. All rights reserved.
7 | //
8 |
9 | #import "SDImageCacheConfig.h"
10 |
11 | static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week
12 |
13 | @implementation SDImageCacheConfig
14 |
15 | - (instancetype)init {
16 | if (self = [super init]) {
17 | _shouldDecompressImages = YES;
18 | _shouldDisableiCloud = YES;
19 | _shouldCacheImagesInMemory = YES;
20 | _maxCacheAge = kDefaultCacheMaxCacheAge;
21 | _maxCacheSize = 0;
22 | }
23 | return self;
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDWebImageCompat.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | * (c) Jamie Pinkham
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 |
10 | #import
11 |
12 | #ifdef __OBJC_GC__
13 | #error SDWebImage does not support Objective-C Garbage Collection
14 | #endif
15 |
16 | // Apple's defines from TargetConditionals.h are a bit weird.
17 | // Seems like TARGET_OS_MAC is always defined (on all platforms).
18 | // To determine if we are running on OSX, we can only relly on TARGET_OS_IPHONE=0 and all the other platforms
19 | #if !TARGET_OS_IPHONE && !TARGET_OS_IOS && !TARGET_OS_TV && !TARGET_OS_WATCH
20 | #define SD_MAC 1
21 | #else
22 | #define SD_MAC 0
23 | #endif
24 |
25 | // iOS and tvOS are very similar, UIKit exists on both platforms
26 | // Note: watchOS also has UIKit, but it's very limited
27 | #if TARGET_OS_IOS || TARGET_OS_TV
28 | #define SD_UIKIT 1
29 | #else
30 | #define SD_UIKIT 0
31 | #endif
32 |
33 | #if TARGET_OS_IOS
34 | #define SD_IOS 1
35 | #else
36 | #define SD_IOS 0
37 | #endif
38 |
39 | #if TARGET_OS_TV
40 | #define SD_TV 1
41 | #else
42 | #define SD_TV 0
43 | #endif
44 |
45 | #if TARGET_OS_WATCH
46 | #define SD_WATCH 1
47 | #else
48 | #define SD_WATCH 0
49 | #endif
50 |
51 |
52 | #if SD_MAC
53 | #import
54 | #ifndef UIImage
55 | #define UIImage NSImage
56 | #endif
57 | #ifndef UIImageView
58 | #define UIImageView NSImageView
59 | #endif
60 | #ifndef UIView
61 | #define UIView NSView
62 | #endif
63 | #else
64 | #if __IPHONE_OS_VERSION_MIN_REQUIRED != 20000 && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0
65 | #error SDWebImage doesn't support Deployment Target version < 5.0
66 | #endif
67 |
68 | #if SD_UIKIT
69 | #import
70 | #endif
71 | #if SD_WATCH
72 | #import
73 | #endif
74 | #endif
75 |
76 | #ifndef NS_ENUM
77 | #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
78 | #endif
79 |
80 | #ifndef NS_OPTIONS
81 | #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
82 | #endif
83 |
84 | #if OS_OBJECT_USE_OBJC
85 | #undef SDDispatchQueueRelease
86 | #undef SDDispatchQueueSetterSementics
87 | #define SDDispatchQueueRelease(q)
88 | #define SDDispatchQueueSetterSementics strong
89 | #else
90 | #undef SDDispatchQueueRelease
91 | #undef SDDispatchQueueSetterSementics
92 | #define SDDispatchQueueRelease(q) (dispatch_release(q))
93 | #define SDDispatchQueueSetterSementics assign
94 | #endif
95 |
96 | extern UIImage *SDScaledImageForKey(NSString *key, UIImage *image);
97 |
98 | typedef void(^SDWebImageNoParamsBlock)(void);
99 |
100 | extern NSString *const SDWebImageErrorDomain;
101 |
102 | #ifndef dispatch_main_async_safe
103 | #define dispatch_main_async_safe(block)\
104 | if (strcmp(dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL), dispatch_queue_get_label(dispatch_get_main_queue())) == 0) {\
105 | block();\
106 | } else {\
107 | dispatch_async(dispatch_get_main_queue(), block);\
108 | }
109 | #endif
110 |
111 | static int64_t kAsyncTestTimeout = 5;
112 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDWebImageCompat.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if !__has_feature(objc_arc)
12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag
13 | #endif
14 |
15 | inline UIImage *SDScaledImageForKey(NSString * _Nullable key, UIImage * _Nullable image) {
16 | if (!image) {
17 | return nil;
18 | }
19 |
20 | #if SD_MAC
21 | return image;
22 | #elif SD_UIKIT || SD_WATCH
23 | if ((image.images).count > 0) {
24 | NSMutableArray *scaledImages = [NSMutableArray array];
25 |
26 | for (UIImage *tempImage in image.images) {
27 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)];
28 | }
29 |
30 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration];
31 | }
32 | else {
33 | #if SD_WATCH
34 | if ([[WKInterfaceDevice currentDevice] respondsToSelector:@selector(screenScale)]) {
35 | #elif SD_UIKIT
36 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
37 | #endif
38 | CGFloat scale = 1;
39 | if (key.length >= 8) {
40 | NSRange range = [key rangeOfString:@"@2x."];
41 | if (range.location != NSNotFound) {
42 | scale = 2.0;
43 | }
44 |
45 | range = [key rangeOfString:@"@3x."];
46 | if (range.location != NSNotFound) {
47 | scale = 3.0;
48 | }
49 | }
50 |
51 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation];
52 | image = scaledImage;
53 | }
54 | return image;
55 | }
56 | #endif
57 | }
58 |
59 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain";
60 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDWebImageDecoder.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | * (c) james
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 |
10 | #import
11 | #import "SDWebImageCompat.h"
12 |
13 | @interface UIImage (ForceDecode)
14 |
15 | + (nullable UIImage *)decodedImageWithImage:(nullable UIImage *)image;
16 |
17 | + (nullable UIImage *)decodedAndScaledDownImageWithImage:(nullable UIImage *)image;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDWebImageDownloaderOperation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import
10 | #import "SDWebImageDownloader.h"
11 | #import "SDWebImageOperation.h"
12 |
13 | extern NSString * _Nonnull const SDWebImageDownloadStartNotification;
14 | extern NSString * _Nonnull const SDWebImageDownloadReceiveResponseNotification;
15 | extern NSString * _Nonnull const SDWebImageDownloadStopNotification;
16 | extern NSString * _Nonnull const SDWebImageDownloadFinishNotification;
17 |
18 |
19 |
20 | /**
21 | Describes a downloader operation. If one wants to use a custom downloader op, it needs to inherit from `NSOperation` and conform to this protocol
22 | */
23 | @protocol SDWebImageDownloaderOperationInterface
24 |
25 | - (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request
26 | inSession:(nullable NSURLSession *)session
27 | options:(SDWebImageDownloaderOptions)options;
28 |
29 | - (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
30 | completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
31 |
32 | - (BOOL)shouldDecompressImages;
33 | - (void)setShouldDecompressImages:(BOOL)value;
34 |
35 | - (nullable NSURLCredential *)credential;
36 | - (void)setCredential:(nullable NSURLCredential *)value;
37 |
38 | @end
39 |
40 |
41 | @interface SDWebImageDownloaderOperation : NSOperation
42 |
43 | /**
44 | * The request used by the operation's task.
45 | */
46 | @property (strong, nonatomic, readonly, nullable) NSURLRequest *request;
47 |
48 | /**
49 | * The operation's task
50 | */
51 | @property (strong, nonatomic, readonly, nullable) NSURLSessionTask *dataTask;
52 |
53 |
54 | @property (assign, nonatomic) BOOL shouldDecompressImages;
55 |
56 | /**
57 | * Was used to determine whether the URL connection should consult the credential storage for authenticating the connection.
58 | * @deprecated Not used for a couple of versions
59 | */
60 | @property (nonatomic, assign) BOOL shouldUseCredentialStorage __deprecated_msg("Property deprecated. Does nothing. Kept only for backwards compatibility");
61 |
62 | /**
63 | * The credential used for authentication challenges in `-connection:didReceiveAuthenticationChallenge:`.
64 | *
65 | * This will be overridden by any shared credentials that exist for the username or password of the request URL, if present.
66 | */
67 | @property (nonatomic, strong, nullable) NSURLCredential *credential;
68 |
69 | /**
70 | * The SDWebImageDownloaderOptions for the receiver.
71 | */
72 | @property (assign, nonatomic, readonly) SDWebImageDownloaderOptions options;
73 |
74 | /**
75 | * The expected size of data.
76 | */
77 | @property (assign, nonatomic) NSInteger expectedSize;
78 |
79 | /**
80 | * The response returned by the operation's connection.
81 | */
82 | @property (strong, nonatomic, nullable) NSURLResponse *response;
83 |
84 | /**
85 | * Initializes a `SDWebImageDownloaderOperation` object
86 | *
87 | * @see SDWebImageDownloaderOperation
88 | *
89 | * @param request the URL request
90 | * @param session the URL session in which this operation will run
91 | * @param options downloader options
92 | *
93 | * @return the initialized instance
94 | */
95 | - (nonnull instancetype)initWithRequest:(nullable NSURLRequest *)request
96 | inSession:(nullable NSURLSession *)session
97 | options:(SDWebImageDownloaderOptions)options NS_DESIGNATED_INITIALIZER;
98 |
99 | /**
100 | * Adds handlers for progress and completion. Returns a tokent that can be passed to -cancel: to cancel this set of
101 | * callbacks.
102 | *
103 | * @param progressBlock the block executed when a new chunk of data arrives.
104 | * @note the progress block is executed on a background queue
105 | * @param completedBlock the block executed when the download is done.
106 | * @note the completed block is executed on the main queue for success. If errors are found, there is a chance the block will be executed on a background queue
107 | *
108 | * @return the token to use to cancel this set of handlers
109 | */
110 | - (nullable id)addHandlersForProgress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
111 | completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
112 |
113 | /**
114 | * Cancels a set of callbacks. Once all callbacks are canceled, the operation is cancelled.
115 | *
116 | * @param token the token representing a set of callbacks to cancel
117 | *
118 | * @return YES if the operation was stopped because this was the last token to be canceled. NO otherwise.
119 | */
120 | - (BOOL)cancel:(nullable id)token;
121 |
122 | @end
123 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDWebImageOperation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import
10 |
11 | @protocol SDWebImageOperation
12 |
13 | - (void)cancel;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/SDWebImagePrefetcher.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import
10 | #import "SDWebImageManager.h"
11 |
12 | @class SDWebImagePrefetcher;
13 |
14 | @protocol SDWebImagePrefetcherDelegate
15 |
16 | @optional
17 |
18 | /**
19 | * Called when an image was prefetched.
20 | *
21 | * @param imagePrefetcher The current image prefetcher
22 | * @param imageURL The image url that was prefetched
23 | * @param finishedCount The total number of images that were prefetched (successful or not)
24 | * @param totalCount The total number of images that were to be prefetched
25 | */
26 | - (void)imagePrefetcher:(nonnull SDWebImagePrefetcher *)imagePrefetcher didPrefetchURL:(nullable NSURL *)imageURL finishedCount:(NSUInteger)finishedCount totalCount:(NSUInteger)totalCount;
27 |
28 | /**
29 | * Called when all images are prefetched.
30 | * @param imagePrefetcher The current image prefetcher
31 | * @param totalCount The total number of images that were prefetched (whether successful or not)
32 | * @param skippedCount The total number of images that were skipped
33 | */
34 | - (void)imagePrefetcher:(nonnull SDWebImagePrefetcher *)imagePrefetcher didFinishWithTotalCount:(NSUInteger)totalCount skippedCount:(NSUInteger)skippedCount;
35 |
36 | @end
37 |
38 | typedef void(^SDWebImagePrefetcherProgressBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls);
39 | typedef void(^SDWebImagePrefetcherCompletionBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls);
40 |
41 | /**
42 | * Prefetch some URLs in the cache for future use. Images are downloaded in low priority.
43 | */
44 | @interface SDWebImagePrefetcher : NSObject
45 |
46 | /**
47 | * The web image manager
48 | */
49 | @property (strong, nonatomic, readonly, nonnull) SDWebImageManager *manager;
50 |
51 | /**
52 | * Maximum number of URLs to prefetch at the same time. Defaults to 3.
53 | */
54 | @property (nonatomic, assign) NSUInteger maxConcurrentDownloads;
55 |
56 | /**
57 | * SDWebImageOptions for prefetcher. Defaults to SDWebImageLowPriority.
58 | */
59 | @property (nonatomic, assign) SDWebImageOptions options;
60 |
61 | /**
62 | * Queue options for Prefetcher. Defaults to Main Queue.
63 | */
64 | @property (nonatomic, assign, nonnull) dispatch_queue_t prefetcherQueue;
65 |
66 | @property (weak, nonatomic, nullable) id delegate;
67 |
68 | /**
69 | * Return the global image prefetcher instance.
70 | */
71 | + (nonnull instancetype)sharedImagePrefetcher;
72 |
73 | /**
74 | * Allows you to instantiate a prefetcher with any arbitrary image manager.
75 | */
76 | - (nonnull instancetype)initWithImageManager:(nonnull SDWebImageManager *)manager NS_DESIGNATED_INITIALIZER;
77 |
78 | /**
79 | * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching,
80 | * currently one image is downloaded at a time,
81 | * and skips images for failed downloads and proceed to the next image in the list
82 | *
83 | * @param urls list of URLs to prefetch
84 | */
85 | - (void)prefetchURLs:(nullable NSArray *)urls;
86 |
87 | /**
88 | * Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching,
89 | * currently one image is downloaded at a time,
90 | * and skips images for failed downloads and proceed to the next image in the list
91 | *
92 | * @param urls list of URLs to prefetch
93 | * @param progressBlock block to be called when progress updates;
94 | * first parameter is the number of completed (successful or not) requests,
95 | * second parameter is the total number of images originally requested to be prefetched
96 | * @param completionBlock block to be called when prefetching is completed
97 | * first param is the number of completed (successful or not) requests,
98 | * second parameter is the number of skipped requests
99 | */
100 | - (void)prefetchURLs:(nullable NSArray *)urls
101 | progress:(nullable SDWebImagePrefetcherProgressBlock)progressBlock
102 | completed:(nullable SDWebImagePrefetcherCompletionBlock)completionBlock;
103 |
104 | /**
105 | * Remove and cancel queued list
106 | */
107 | - (void)cancelPrefetching;
108 |
109 |
110 | @end
111 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIImage+GIF.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | * (c) Laurin Brandner
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 |
10 | #import "SDWebImageCompat.h"
11 |
12 | @interface UIImage (GIF)
13 |
14 | /**
15 | * Compatibility method - creates an animated UIImage from an NSData, it will only contain the 1st frame image
16 | */
17 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data;
18 |
19 | /**
20 | * Checks if an UIImage instance is a GIF. Will use the `images` array
21 | */
22 | - (BOOL)isGIF;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIImage+GIF.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | * (c) Laurin Brandner
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 |
10 | #import "UIImage+GIF.h"
11 | #import
12 | #import "objc/runtime.h"
13 | #import "NSImage+WebCache.h"
14 |
15 | @implementation UIImage (GIF)
16 |
17 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data {
18 | if (!data) {
19 | return nil;
20 | }
21 |
22 | CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)data, NULL);
23 |
24 | size_t count = CGImageSourceGetCount(source);
25 |
26 | UIImage *staticImage;
27 |
28 | if (count <= 1) {
29 | staticImage = [[UIImage alloc] initWithData:data];
30 | } else {
31 | // we will only retrieve the 1st frame. the full GIF support is available via the FLAnimatedImageView category.
32 | // this here is only code to allow drawing animated images as static ones
33 | #if SD_WATCH
34 | CGFloat scale = 1;
35 | scale = [WKInterfaceDevice currentDevice].screenScale;
36 | #elif SD_UIKIT
37 | CGFloat scale = 1;
38 | scale = [UIScreen mainScreen].scale;
39 | #endif
40 |
41 | CGImageRef CGImage = CGImageSourceCreateImageAtIndex(source, 0, NULL);
42 | #if SD_UIKIT || SD_WATCH
43 | UIImage *frameImage = [UIImage imageWithCGImage:CGImage scale:scale orientation:UIImageOrientationUp];
44 | staticImage = [UIImage animatedImageWithImages:@[frameImage] duration:0.0f];
45 | #elif SD_MAC
46 | staticImage = [[UIImage alloc] initWithCGImage:CGImage size:NSZeroSize];
47 | #endif
48 | CGImageRelease(CGImage);
49 | }
50 |
51 | CFRelease(source);
52 |
53 | return staticImage;
54 | }
55 |
56 | - (BOOL)isGIF {
57 | return (self.images != nil);
58 | }
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIImage+MultiFormat.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 | #import "NSData+ImageContentType.h"
11 |
12 | @interface UIImage (MultiFormat)
13 |
14 | + (nullable UIImage *)sd_imageWithData:(nullable NSData *)data;
15 | - (nullable NSData *)sd_imageData;
16 | - (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIImage+WebP.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #ifdef SD_WEBP
10 |
11 | #import "SDWebImageCompat.h"
12 |
13 | @interface UIImage (WebP)
14 |
15 | + (nullable UIImage *)sd_imageWithWebPData:(nullable NSData *)data;
16 |
17 | @end
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIImageView+HighlightedWebCache.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if SD_UIKIT
12 |
13 | #import "SDWebImageManager.h"
14 |
15 | /**
16 | * Integrates SDWebImage async downloading and caching of remote images with UIImageView for highlighted state.
17 | */
18 | @interface UIImageView (HighlightedWebCache)
19 |
20 | /**
21 | * Set the imageView `highlightedImage` with an `url`.
22 | *
23 | * The download is asynchronous and cached.
24 | *
25 | * @param url The url for the image.
26 | */
27 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url;
28 |
29 | /**
30 | * Set the imageView `highlightedImage` with an `url` and custom options.
31 | *
32 | * The download is asynchronous and cached.
33 | *
34 | * @param url The url for the image.
35 | * @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values.
36 | */
37 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url
38 | options:(SDWebImageOptions)options;
39 |
40 | /**
41 | * Set the imageView `highlightedImage` with an `url`.
42 | *
43 | * The download is asynchronous and cached.
44 | *
45 | * @param url The url for the image.
46 | * @param completedBlock A block called when operation has been completed. This block has no return value
47 | * and takes the requested UIImage as first parameter. In case of error the image parameter
48 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
49 | * indicating if the image was retrieved from the local cache or from the network.
50 | * The fourth parameter is the original image url.
51 | */
52 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url
53 | completed:(nullable SDExternalCompletionBlock)completedBlock;
54 |
55 | /**
56 | * Set the imageView `highlightedImage` with an `url` and custom options.
57 | *
58 | * The download is asynchronous and cached.
59 | *
60 | * @param url The url for the image.
61 | * @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values.
62 | * @param completedBlock A block called when operation has been completed. This block has no return value
63 | * and takes the requested UIImage as first parameter. In case of error the image parameter
64 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
65 | * indicating if the image was retrieved from the local cache or from the network.
66 | * The fourth parameter is the original image url.
67 | */
68 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url
69 | options:(SDWebImageOptions)options
70 | completed:(nullable SDExternalCompletionBlock)completedBlock;
71 |
72 | /**
73 | * Set the imageView `highlightedImage` with an `url` and custom options.
74 | *
75 | * The download is asynchronous and cached.
76 | *
77 | * @param url The url for the image.
78 | * @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values.
79 | * @param progressBlock A block called while image is downloading
80 | * @note the progress block is executed on a background queue
81 | * @param completedBlock A block called when operation has been completed. This block has no return value
82 | * and takes the requested UIImage as first parameter. In case of error the image parameter
83 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
84 | * indicating if the image was retrieved from the local cache or from the network.
85 | * The fourth parameter is the original image url.
86 | */
87 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url
88 | options:(SDWebImageOptions)options
89 | progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
90 | completed:(nullable SDExternalCompletionBlock)completedBlock;
91 |
92 | @end
93 |
94 | #endif
95 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIImageView+HighlightedWebCache.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "UIImageView+HighlightedWebCache.h"
10 |
11 | #if SD_UIKIT
12 |
13 | #import "UIView+WebCacheOperation.h"
14 | #import "UIView+WebCache.h"
15 |
16 | @implementation UIImageView (HighlightedWebCache)
17 |
18 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url {
19 | [self sd_setHighlightedImageWithURL:url options:0 progress:nil completed:nil];
20 | }
21 |
22 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url options:(SDWebImageOptions)options {
23 | [self sd_setHighlightedImageWithURL:url options:options progress:nil completed:nil];
24 | }
25 |
26 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url completed:(nullable SDExternalCompletionBlock)completedBlock {
27 | [self sd_setHighlightedImageWithURL:url options:0 progress:nil completed:completedBlock];
28 | }
29 |
30 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url options:(SDWebImageOptions)options completed:(nullable SDExternalCompletionBlock)completedBlock {
31 | [self sd_setHighlightedImageWithURL:url options:options progress:nil completed:completedBlock];
32 | }
33 |
34 | - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url
35 | options:(SDWebImageOptions)options
36 | progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
37 | completed:(nullable SDExternalCompletionBlock)completedBlock {
38 | __weak typeof(self)weakSelf = self;
39 | [self sd_internalSetImageWithURL:url
40 | placeholderImage:nil
41 | options:options
42 | operationKey:@"UIImageViewImageOperationHighlighted"
43 | setImageBlock:^(UIImage *image, NSData *imageData) {
44 | weakSelf.highlightedImage = image;
45 | }
46 | progress:progressBlock
47 | completed:completedBlock];
48 | }
49 |
50 | @end
51 |
52 | #endif
53 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIView+WebCache.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if SD_UIKIT || SD_MAC
12 |
13 | #import "SDWebImageManager.h"
14 |
15 | typedef void(^SDSetImageBlock)(UIImage * _Nullable image, NSData * _Nullable imageData);
16 |
17 | @interface UIView (WebCache)
18 |
19 | /**
20 | * Get the current image URL.
21 | *
22 | * Note that because of the limitations of categories this property can get out of sync
23 | * if you use setImage: directly.
24 | */
25 | - (nullable NSURL *)sd_imageURL;
26 |
27 | /**
28 | * Set the imageView `image` with an `url` and optionally a placeholder image.
29 | *
30 | * The download is asynchronous and cached.
31 | *
32 | * @param url The url for the image.
33 | * @param placeholder The image to be set initially, until the image request finishes.
34 | * @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values.
35 | * @param operationKey A string to be used as the operation key. If nil, will use the class name
36 | * @param setImageBlock Block used for custom set image code
37 | * @param progressBlock A block called while image is downloading
38 | * @note the progress block is executed on a background queue
39 | * @param completedBlock A block called when operation has been completed. This block has no return value
40 | * and takes the requested UIImage as first parameter. In case of error the image parameter
41 | * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
42 | * indicating if the image was retrieved from the local cache or from the network.
43 | * The fourth parameter is the original image url.
44 | */
45 | - (void)sd_internalSetImageWithURL:(nullable NSURL *)url
46 | placeholderImage:(nullable UIImage *)placeholder
47 | options:(SDWebImageOptions)options
48 | operationKey:(nullable NSString *)operationKey
49 | setImageBlock:(nullable SDSetImageBlock)setImageBlock
50 | progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
51 | completed:(nullable SDExternalCompletionBlock)completedBlock;
52 |
53 | /**
54 | * Cancel the current download
55 | */
56 | - (void)sd_cancelCurrentImageLoad;
57 |
58 | #if SD_UIKIT
59 |
60 | #pragma mark - Activity indicator
61 |
62 | /**
63 | * Show activity UIActivityIndicatorView
64 | */
65 | - (void)sd_setShowActivityIndicatorView:(BOOL)show;
66 |
67 | /**
68 | * set desired UIActivityIndicatorViewStyle
69 | *
70 | * @param style The style of the UIActivityIndicatorView
71 | */
72 | - (void)sd_setIndicatorStyle:(UIActivityIndicatorViewStyle)style;
73 |
74 | - (BOOL)sd_showActivityIndicatorView;
75 | - (void)sd_addActivityIndicator;
76 | - (void)sd_removeActivityIndicator;
77 |
78 | #endif
79 |
80 | @end
81 |
82 | #endif
83 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIView+WebCacheOperation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if SD_UIKIT || SD_MAC
12 |
13 | #import "SDWebImageManager.h"
14 |
15 | @interface UIView (WebCacheOperation)
16 |
17 | /**
18 | * Set the image load operation (storage in a UIView based dictionary)
19 | *
20 | * @param operation the operation
21 | * @param key key for storing the operation
22 | */
23 | - (void)sd_setImageLoadOperation:(nullable id)operation forKey:(nullable NSString *)key;
24 |
25 | /**
26 | * Cancel all operations for the current UIView and key
27 | *
28 | * @param key key for identifying the operations
29 | */
30 | - (void)sd_cancelImageLoadOperationWithKey:(nullable NSString *)key;
31 |
32 | /**
33 | * Just remove the operations corresponding to the current UIView and key without cancelling them
34 | *
35 | * @param key key for identifying the operations
36 | */
37 | - (void)sd_removeImageLoadOperationWithKey:(nullable NSString *)key;
38 |
39 | @end
40 |
41 | #endif
42 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/SDWebImage/UIView+WebCacheOperation.m:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import "UIView+WebCacheOperation.h"
10 |
11 | #if SD_UIKIT || SD_MAC
12 |
13 | #import "objc/runtime.h"
14 |
15 | static char loadOperationKey;
16 |
17 | typedef NSMutableDictionary SDOperationsDictionary;
18 |
19 | @implementation UIView (WebCacheOperation)
20 |
21 | - (SDOperationsDictionary *)operationDictionary {
22 | SDOperationsDictionary *operations = objc_getAssociatedObject(self, &loadOperationKey);
23 | if (operations) {
24 | return operations;
25 | }
26 | operations = [NSMutableDictionary dictionary];
27 | objc_setAssociatedObject(self, &loadOperationKey, operations, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
28 | return operations;
29 | }
30 |
31 | - (void)sd_setImageLoadOperation:(nullable id)operation forKey:(nullable NSString *)key {
32 | if (key) {
33 | [self sd_cancelImageLoadOperationWithKey:key];
34 | if (operation) {
35 | SDOperationsDictionary *operationDictionary = [self operationDictionary];
36 | operationDictionary[key] = operation;
37 | }
38 | }
39 | }
40 |
41 | - (void)sd_cancelImageLoadOperationWithKey:(nullable NSString *)key {
42 | // Cancel in progress downloader from queue
43 | SDOperationsDictionary *operationDictionary = [self operationDictionary];
44 | id operations = operationDictionary[key];
45 | if (operations) {
46 | if ([operations isKindOfClass:[NSArray class]]) {
47 | for (id operation in operations) {
48 | if (operation) {
49 | [operation cancel];
50 | }
51 | }
52 | } else if ([operations conformsToProtocol:@protocol(SDWebImageOperation)]){
53 | [(id) operations cancel];
54 | }
55 | [operationDictionary removeObjectForKey:key];
56 | }
57 | }
58 |
59 | - (void)sd_removeImageLoadOperationWithKey:(nullable NSString *)key {
60 | if (key) {
61 | SDOperationsDictionary *operationDictionary = [self operationDictionary];
62 | [operationDictionary removeObjectForKey:key];
63 | }
64 | }
65 |
66 | @end
67 |
68 | #endif
69 |
--------------------------------------------------------------------------------
/LNThemeDemo/Libraries/YYModel/YYModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // YYModel.h
3 | // YYModel
4 | //
5 | // Created by ibireme on 15/5/10.
6 | // Copyright (c) 2015 ibireme.
7 | //
8 | // This source code is licensed under the MIT-style license found in the
9 | // LICENSE file in the root directory of this source tree.
10 | //
11 |
12 | #import
13 |
14 | #if __has_include()
15 | FOUNDATION_EXPORT double YYModelVersionNumber;
16 | FOUNDATION_EXPORT const unsigned char YYModelVersionString[];
17 | #import
18 | #import
19 | #else
20 | #import "NSObject+YYModel.h"
21 | #import "YYClassInfo.h"
22 | #endif
23 |
--------------------------------------------------------------------------------
/LNThemeDemo/MyMusicVC/MyMusicVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyMusicVC.h
3 | // LNTheme
4 | //
5 | // Created by vvusu on 12/30/16.
6 | // Copyright © 2016 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MyMusicVC : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LNThemeDemo/MyMusicVC/MyMusicVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // MyMusicVC.m
3 | // LNTheme
4 | //
5 | // Created by vvusu on 1/23/17.
6 | // Copyright © 2017 vvusu. All rights reserved.
7 | //
8 |
9 | #import "MyMusicVC.h"
10 | #import
11 |
12 | @interface MyMusicVC ()
13 | @property (weak, nonatomic) IBOutlet UIButton *button;
14 | @property (weak, nonatomic) IBOutlet UISwitch *testSwitch;
15 | @property (weak, nonatomic) IBOutlet UITextView *textView;
16 | @property (weak, nonatomic) IBOutlet UISlider *sliderView;
17 | @property (weak, nonatomic) IBOutlet UITextField *textField;
18 | @property (weak, nonatomic) IBOutlet UIImageView *imageview;
19 | @property (weak, nonatomic) IBOutlet UIProgressView *progressView;
20 |
21 | @end
22 |
23 | @implementation MyMusicVC
24 |
25 | - (void)viewDidLoad {
26 | [super viewDidLoad];
27 | [self.button ln_titleFont:@"f4"];
28 | [self.button ln_backgroundImageNamed:@"cm2_btm_bg" forState:UIControlStateNormal];
29 | [self.button ln_backgroundImageNamed:@"cm2_edit_cmt_bg" forState:UIControlStateHighlighted];
30 |
31 | [self.textField ln_textColor:@"c8"];
32 |
33 | [self.textView ln_textColor:@"c8"];
34 |
35 | [self.imageview ln_imageNamed:@"cm2_chat_bg"];
36 |
37 | [self.testSwitch ln_onTintColor:@"c8"];
38 | [self.testSwitch ln_thumbTintColor:@"c3"];
39 |
40 | [self.progressView ln_trackTintColor:@"c3"];
41 | [self.progressView ln_progressTintColor:@"c8"];
42 |
43 | [self.sliderView ln_minimumTrackTintColor:@"c8"];
44 | [self.sliderView ln_maximumTrackTintColor:@"c3"];
45 |
46 | [self ln_customThemeAction:^id {
47 | NSLog(@"LN____Theme Action");
48 | return nil;
49 | }];
50 |
51 | // Do any additional setup after loading the view.
52 | }
53 | - (IBAction)testBtnAction:(id)sender {
54 |
55 | }
56 |
57 | - (void)didReceiveMemoryWarning {
58 | [super didReceiveMemoryWarning];
59 | // Dispose of any resources that can be recreated.
60 | }
61 |
62 | /*
63 | #pragma mark - Navigation
64 |
65 | // In a storyboard-based application, you will often want to do a little preparation before navigation
66 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
67 | // Get the new view controller using [segue destinationViewController].
68 | // Pass the selected object to the new view controller.
69 | }
70 | */
71 |
72 | @end
73 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeDetailVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeDetailVC.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/28/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ThemeModel;
12 | @interface ThemeDetailVC : UIViewController
13 | @property (strong, nonatomic) ThemeModel *model;
14 | @end
15 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeDetailVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeDetailVC.m
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/28/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import "ThemeDetailVC.h"
10 | #import "ThemeModel.h"
11 | #import "GoldZipLoader.h"
12 | #import "MBProgressHUD.h"
13 | #import "UIImageView+WebCache.h"
14 | #import "LNTheme.h"
15 |
16 | #define KCRGB(r,g,b) [UIColor colorWithRed:(r/255.0) green:(g/255.0) blue:(b/255.0) alpha:1.0]
17 | #define KCRANDOMCOLOR KCRGB(arc4random_uniform(256),arc4random_uniform(256),arc4random_uniform(256))
18 |
19 | @interface ThemeDetailVC ()
20 | @property (weak, nonatomic) IBOutlet UILabel *nameLabel;
21 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
22 | @property (weak, nonatomic) IBOutlet UIImageView *musicBg;
23 | @property (weak, nonatomic) IBOutlet UIButton *confirmBtn;
24 | @end
25 |
26 | @implementation ThemeDetailVC
27 |
28 | - (void)dealloc {
29 | }
30 |
31 | - (void)viewDidLoad {
32 | [super viewDidLoad];
33 | self.view.backgroundColor = [UIColor whiteColor];
34 | self.nameLabel.text = self.model.name;
35 | self.titleLabel.text = self.model.descriptionField;
36 | [self.musicBg sd_setImageWithURL:[NSURL URLWithString:self.model.thumbnail]];
37 | [self.nameLabel ln_textColor:@"c8"];
38 | [self.confirmBtn ln_backgroundColor:@"c7"];
39 | [self.confirmBtn ln_backgroundColor:@"c8"];
40 |
41 | // Do any additional setup after loading the view from its nib.
42 | }
43 |
44 | - (void)didReceiveMemoryWarning {
45 | [super didReceiveMemoryWarning];
46 | // Dispose of any resources that can be recreated.
47 | }
48 |
49 | - (IBAction)confirmBtnAction:(id)sender {
50 | [self changeCurrentTheme];
51 | }
52 |
53 | - (void)changeCustomColor {
54 | // 重新加载主题图片,并设置主题色为红色
55 | }
56 |
57 | - (void)changeCurrentTheme {
58 | __weak typeof(self) wself= self;
59 | if (self.confirmBtn.isSelected) {
60 | return;
61 | }
62 | [MBProgressHUD showHUDAddedTo:self.view animated:YES];
63 | if (!self.model.idField) {
64 | self.model.idField = [NSString stringWithFormat:@"theme_%f",[NSDate date].timeIntervalSince1970];
65 | }
66 | NSString *path = [NSString stringWithFormat:@"UserData/Skin/CurrentTheme/%@",self.model.idField];
67 | NSString *targetPath = [GoldZipLoader fileAtLibrary:path];
68 | [GoldZipLoader downloadFile:[NSURL URLWithString:self.model.downloadUrl]
69 | destination:targetPath
70 | block:^(NSError *error) {
71 | dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
72 | dispatch_async(dispatch_get_main_queue(), ^{
73 | [MBProgressHUD hideHUDForView:wself.view animated:YES];
74 | if (!error) {
75 | wself.confirmBtn.selected = YES;
76 | }
77 | [LNTheme changeTheme:wself.model.idField];
78 | });
79 | });
80 | }];
81 | }
82 |
83 | @end
84 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeModel.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/29/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ThemeModel : NSObject
12 | @property (nonatomic, assign) NSInteger createTime;
13 | @property (nonatomic, strong) NSString *descriptionField;
14 | @property (nonatomic, strong) NSString *digitalAlbumId;
15 | @property (nonatomic, strong) NSString *downCount;
16 | @property (nonatomic, strong) NSString *downloadUrl;
17 | @property (nonatomic, strong) NSString *downloadedSize;
18 | @property (nonatomic, strong) NSString *fileSize;
19 | @property (nonatomic, strong) NSString *goodId;
20 | @property (nonatomic, strong) NSString *idField;
21 | @property (nonatomic, strong) NSString *isNew;
22 | @property (nonatomic, strong) NSString *mininumRequiredVersion;
23 | @property (nonatomic, strong) NSString *name;
24 | @property (nonatomic, strong) NSString *paid;
25 | @property (nonatomic, strong) NSString *pointCost;
26 | @property (nonatomic, strong) NSArray *previewImgs;
27 | @property (nonatomic, strong) NSString *relativeFilePath;
28 | @property (nonatomic, strong) NSString *removedByServer;
29 | @property (nonatomic, strong) NSString *rmbCost;
30 | @property (nonatomic, strong) NSString *skuId;
31 | @property (nonatomic, strong) NSString *state;
32 | @property (nonatomic, strong) NSString *themeType;
33 | @property (nonatomic, strong) NSString *thumbnail;
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeModel.m
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/29/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import "ThemeModel.h"
10 |
11 | @implementation ThemeModel
12 | + (NSDictionary *)modelCustomPropertyMapper {
13 | return @{@"idField" : @"id",
14 | @"descriptionField" : @"description"};
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeSettingCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeSettingCell.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/29/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ThemeSettingCell : UICollectionViewCell
12 | @property (weak, nonatomic) IBOutlet UIImageView *bgImage;
13 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeSettingCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeSettingCell.m
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/29/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import "ThemeSettingCell.h"
10 |
11 | @implementation ThemeSettingCell
12 |
13 | - (void)awakeFromNib {
14 | [super awakeFromNib];
15 | // Initialization code
16 | }
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeSettingCell.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeSettingVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeSettingVC.h
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/28/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ThemeSettingVC : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LNThemeDemo/ThemeVC/ThemeSettingVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeSettingVC.m
3 | // GoldUISSFramework
4 | //
5 | // Created by vvusu on 12/28/16.
6 | // Copyright © 2016 Micker. All rights reserved.
7 | //
8 |
9 | #import "ThemeSettingVC.h"
10 | #import "YYModel.h"
11 | #import "ThemeModel.h"
12 | #import "ThemeDetailVC.h"
13 | #import "ThemeSettingCell.h"
14 | #import "UIImageView+WebCache.h"
15 | #import
16 |
17 | #define __async_main__ dispatch_async(dispatch_get_main_queue()
18 | #define __async_global__ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
19 |
20 | static NSString *const KICellReuseIdentifier = @"ThemeSettingCell";
21 |
22 | @interface ThemeSettingVC ()
23 | @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
24 | @property (strong, nonatomic) NSArray *dataArr;
25 | @end
26 | @implementation ThemeSettingVC
27 |
28 | - (void)viewDidLoad {
29 | [super viewDidLoad];
30 | [self loadData];
31 | self.view.backgroundColor = [UIColor whiteColor];
32 | CGFloat itemW = (self.view.frame.size.width - 40) / 3.0 - 1;
33 | CGFloat itemH = itemW * 87 / 61 + 20;
34 | UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
35 | layout.itemSize = CGSizeMake(itemW, itemH);
36 | layout.minimumInteritemSpacing = 0.0;
37 | layout.minimumLineSpacing = 20.0;
38 | layout.minimumInteritemSpacing = 10.0;
39 | layout.scrollDirection = UICollectionViewScrollDirectionVertical;
40 | self.collectionView.delegate = self;
41 | self.collectionView.dataSource = self;
42 | self.collectionView.contentInset = UIEdgeInsetsMake(10, 10, 60, 10);
43 | self.collectionView.collectionViewLayout = layout;
44 | self.collectionView.showsVerticalScrollIndicator = NO;
45 | self.collectionView.backgroundColor = [UIColor whiteColor];
46 | [self.collectionView registerNib:[UINib nibWithNibName:KICellReuseIdentifier bundle:nil] forCellWithReuseIdentifier:KICellReuseIdentifier];
47 |
48 |
49 | //注册自定的Font
50 | NSString *filePath = [[NSBundle mainBundle] pathForResource:@"customFont" ofType:@"json"];
51 | [LNTheme addFont:@"custom" forPath:filePath];
52 | }
53 |
54 | - (void)didReceiveMemoryWarning {
55 | [super didReceiveMemoryWarning];
56 | // Dispose of any resources that can be recreated.
57 | }
58 |
59 | - (void)loadData {
60 | NSString *filePath = [[NSBundle mainBundle] pathForResource:@"skineTheme" ofType:@"json"];
61 | NSData *fileData = [NSData dataWithContentsOfFile:filePath];
62 | NSError *error = nil;
63 | NSArray *jsonArr = [NSJSONSerialization JSONObjectWithData:fileData options:NSJSONReadingAllowFragments error:&error];
64 | self.dataArr = [NSArray yy_modelArrayWithClass:[ThemeModel class] json:jsonArr];
65 | }
66 |
67 | #pragma mark - UICollectionViewDataSource
68 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
69 | return self.dataArr.count;
70 | }
71 |
72 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
73 | ThemeSettingCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:KICellReuseIdentifier forIndexPath:indexPath];
74 | ThemeModel *model = self.dataArr[indexPath.row];
75 | [cell.bgImage sd_setImageWithURL:[NSURL URLWithString:model.thumbnail]];
76 | cell.titleLabel.text = model.name;
77 | return cell;
78 | }
79 |
80 | #pragma mark - UICollectionViewDelegate
81 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
82 | ThemeDetailVC *themeVC = [[ThemeDetailVC alloc]init];
83 | themeVC.model = self.dataArr[indexPath.row];
84 | [self.navigationController pushViewController:themeVC animated:YES];
85 | }
86 |
87 | @end
88 |
--------------------------------------------------------------------------------
/LNThemeDemo/customFont.json:
--------------------------------------------------------------------------------
1 | {
2 | "fonts": {
3 | "f1": "8",
4 | "f2": "9",
5 | "f3": "10",
6 | "f4": "smws,35",
7 | "f5": "40"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/LNThemeDemo/defaultTheme.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors": {
3 | "c1": "b2770f",
4 | "c2": "b2770f",
5 | "c3": "aaaaaa",
6 | "c4": "b2770f",
7 | "c5": "b2770f",
8 | "c6": "714b09",
9 | "c7": "b2770f",
10 | "c8": "FF157EFB",
11 | "c9": "f4b23e",
12 | "cred": "f42f1b",
13 | "cmsgl": "333333",
14 | "cmsgr": "ffffff",
15 | "ctabn": "aaaaaa",
16 | "ctabh": "ffffff"
17 | },
18 | "fonts": {
19 | "f1": "8",
20 | "f2": "9",
21 | "f3": "10",
22 | "f4": "20",
23 | "f5": "30",
24 | },
25 | "coordinators": {
26 | "NMTabBarBadgePointViewOriginOffset": "{0,0}",
27 | "NMTabBarBadgePointViewHighlightOriginOffset": "{0,0}",
28 | "NMTabBarBadgeTextViewOriginOffset": "{0,0}",
29 | "NMTabBarBadgeTextViewHighlightOriginOffset": "{0,0}"
30 | },
31 | "hideseparator": 1
32 | }
33 |
--------------------------------------------------------------------------------
/LNThemeDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LNThemeDemo
4 | //
5 | // Created by vvusu on 3/1/17.
6 | // Copyright © 2017 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/LNThemeTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/LNThemeTests/LNThemeTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // LNThemeTests.m
3 | // LNThemeTests
4 | //
5 | // Created by vvusu on 12/27/16.
6 | // Copyright © 2016 vvusu. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LNThemeTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation LNThemeTests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 | // Put setup code here. This method is called before the invocation of each test method in the class.
20 | }
21 |
22 | - (void)tearDown {
23 | // Put teardown code here. This method is called after the invocation of each test method in the class.
24 | [super tearDown];
25 | }
26 |
27 | - (void)testExample {
28 | // This is an example of a functional test case.
29 | // Use XCTAssert and related functions to verify your tests produce the correct results.
30 | }
31 |
32 | - (void)testPerformanceExample {
33 | // This is an example of a performance test case.
34 | [self measureBlock:^{
35 | // Put the code you want to measure the time of here.
36 | }];
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/Scripts/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/Scripts/.DS_Store
--------------------------------------------------------------------------------
/Scripts/build-universal-framework.sh:
--------------------------------------------------------------------------------
1 |
2 | #如果运行脚本报错:切到目录下,chmod 777 *.sh或者chmod +x *.sh
3 |
4 | #!/bin/sh
5 |
6 | UNIVERSAL_OUTPUTFOLDER=../Build/
7 |
8 | # 创建输出目录,并删除之前的framework文件
9 | mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
10 | rm -rf "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework"
11 |
12 | # 分别编译模拟器和真机的Framework
13 | xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
14 | xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
15 |
16 | # 拷贝framework到univer目录
17 | cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework" "${UNIVERSAL_OUTPUTFOLDER}/"
18 |
19 | # 合并framework,输出最终的framework到build目录
20 | lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}"
21 |
22 | # 打开文件夹
23 | open "${UNIVERSAL_OUTPUTFOLDER}"
24 |
--------------------------------------------------------------------------------
/build/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/.DS_Store
--------------------------------------------------------------------------------
/build/LNTheme.build/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/.DS_Store
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/DerivedSources/LNTheme_vers.c:
--------------------------------------------------------------------------------
1 | extern const unsigned char LNThemeVersionString[];
2 | extern const double LNThemeVersionNumber;
3 |
4 | const unsigned char LNThemeVersionString[] __attribute__ ((used)) = "@(#)PROGRAM:LNTheme PROJECT:LNTheme-1" "\n";
5 | const double LNThemeVersionNumber __attribute__ ((used)) = (double)1.;
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-all-non-framework-target-headers.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-all-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-all-target-headers.hmap
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-generated-files.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-own-target-headers.hmap:
--------------------------------------------------------------------------------
1 | pamh x 3 3 # # LNTheme.h LNTheme/ UIImage+Tint.h LNThemePicker.h NSObject+LNTheme.h
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-project-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme-project-headers.hmap
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/LNTheme.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.o
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/UIImage+Tint.o
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNThemePicker.o
4 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/NSObject+LNTheme.o
5 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme_vers.o
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.m \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
3 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNThemePicker.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNThemePicker.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNThemePicker.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNThemePicker.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNThemePicker.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme_vers.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/DerivedSources/LNTheme_vers.c
3 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme_vers.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme_vers.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme_vers.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/LNTheme_vers.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/NSObject+LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/NSObject+LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/NSObject+LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/NSObject+LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/NSObject+LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/UIImage+Tint.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
5 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/UIImage+Tint.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/UIImage+Tint.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/UIImage+Tint.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/arm64/UIImage+Tint.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.o
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/UIImage+Tint.o
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNThemePicker.o
4 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/NSObject+LNTheme.o
5 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme_vers.o
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.m \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
3 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNThemePicker.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNThemePicker.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNThemePicker.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNThemePicker.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNThemePicker.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme_vers.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/DerivedSources/LNTheme_vers.c
3 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme_vers.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme_vers.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme_vers.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/LNTheme_vers.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/NSObject+LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/NSObject+LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/NSObject+LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/NSObject+LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/NSObject+LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/UIImage+Tint.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
5 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/UIImage+Tint.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/UIImage+Tint.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/UIImage+Tint.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/Objects-normal/armv7/UIImage+Tint.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/dgph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphoneos/LNTheme.build/dgph
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/dgph~:
--------------------------------------------------------------------------------
1 | DGPH1.04Nov 16 201717:22:57 / Users vvusu Downloads LNTheme
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphoneos/LNTheme.build/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module LNTheme {
2 | umbrella header "LNTheme.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/DerivedSources/LNTheme_vers.c:
--------------------------------------------------------------------------------
1 | extern const unsigned char LNThemeVersionString[];
2 | extern const double LNThemeVersionNumber;
3 |
4 | const unsigned char LNThemeVersionString[] __attribute__ ((used)) = "@(#)PROGRAM:LNTheme PROJECT:LNTheme-1" "\n";
5 | const double LNThemeVersionNumber __attribute__ ((used)) = (double)1.;
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-all-non-framework-target-headers.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-all-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-all-target-headers.hmap
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-generated-files.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-own-target-headers.hmap:
--------------------------------------------------------------------------------
1 | pamh x 3 3 # # LNTheme.h LNTheme/ UIImage+Tint.h LNThemePicker.h NSObject+LNTheme.h
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-project-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme-project-headers.hmap
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/LNTheme.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.o
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/UIImage+Tint.o
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNThemePicker.o
4 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/NSObject+LNTheme.o
5 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme_vers.o
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.m \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
3 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNThemePicker.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNThemePicker.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNThemePicker.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNThemePicker.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNThemePicker.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme_vers.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/DerivedSources/LNTheme_vers.c
3 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme_vers.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme_vers.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme_vers.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/LNTheme_vers.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/NSObject+LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/NSObject+LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/NSObject+LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/NSObject+LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/NSObject+LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/UIImage+Tint.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
5 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/UIImage+Tint.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/UIImage+Tint.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/UIImage+Tint.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/i386/UIImage+Tint.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.o
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/UIImage+Tint.o
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNThemePicker.o
4 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/NSObject+LNTheme.o
5 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme_vers.o
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.m \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
3 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNThemePicker.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h \
6 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNThemePicker.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNThemePicker.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNThemePicker.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNThemePicker.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme_vers.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/DerivedSources/LNTheme_vers.c
3 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme_vers.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme_vers.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme_vers.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/LNTheme_vers.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/NSObject+LNTheme.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h \
5 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h
6 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/NSObject+LNTheme.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/NSObject+LNTheme.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/NSObject+LNTheme.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/NSObject+LNTheme.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/UIImage+Tint.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.m \
3 | /Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap \
4 | /Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h
5 |
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/UIImage+Tint.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/UIImage+Tint.dia
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/UIImage+Tint.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/Objects-normal/x86_64/UIImage+Tint.o
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/dgph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/dgph
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/dgph~:
--------------------------------------------------------------------------------
1 | DGPH1.04Nov 16 201717:22:57 / Users vvusu Downloads LNTheme
--------------------------------------------------------------------------------
/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module LNTheme {
2 | umbrella header "LNTheme.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/build/LNTheme.build/all-product-headers.yaml:
--------------------------------------------------------------------------------
1 | {
2 | 'version': 0,
3 | 'case-sensitive': 'false',
4 | 'roots': [
5 | {
6 | 'type': 'directory',
7 | 'name': "/Users/vvusu/Library/Developer/Xcode/DerivedData/LNTheme-ffpfldslynxgdbdqmlaertxugzgg/Build/Products/Debug-iphonesimulator/LNTheme.framework/Headers",
8 | 'contents': [
9 | {
10 | 'type': 'file',
11 | 'name': "LNTheme-Swift.h",
12 | 'external-contents': "/Users/vvusu/Library/Developer/Xcode/DerivedData/LNTheme-ffpfldslynxgdbdqmlaertxugzgg/Build/Products/Debug-iphonesimulator/LNTheme.framework/Headers/LNTheme-Swift.h"
13 | },
14 | {
15 | 'type': 'file',
16 | 'name': "LNTheme.h",
17 | 'external-contents': "/Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNTheme.h"
18 | },
19 | {
20 | 'type': 'file',
21 | 'name': "LNTheme.h",
22 | 'external-contents': "/Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme.h"
23 | },
24 | {
25 | 'type': 'file',
26 | 'name': "LNThemePicker.h",
27 | 'external-contents': "/Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/LNThemePicker.h"
28 | },
29 | {
30 | 'type': 'file',
31 | 'name': "NSObject+LNTheme.h",
32 | 'external-contents': "/Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/NSObject+LNTheme.h"
33 | },
34 | {
35 | 'type': 'file',
36 | 'name': "UIImage+Tint.h",
37 | 'external-contents': "/Users/vvusu/Downloads/LNTheme/LNTheme/LNTheme/UIImage+Tint.h"
38 | }
39 | ]
40 | },
41 | {
42 | 'type': 'directory',
43 | 'name': "/Users/vvusu/Library/Developer/Xcode/DerivedData/LNTheme-ffpfldslynxgdbdqmlaertxugzgg/Build/Products/Debug-iphonesimulator/LNTheme.framework/Modules",
44 | 'contents': [
45 | {
46 | 'type': 'file',
47 | 'name': "module.modulemap",
48 | 'external-contents': "/Users/vvusu/Downloads/LNTheme/build/LNTheme.build/Debug-iphonesimulator/LNTheme.build/module.modulemap"
49 | }
50 | ]
51 | }
52 | ]
53 | }
54 |
--------------------------------------------------------------------------------
/images/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/images/.DS_Store
--------------------------------------------------------------------------------
/images/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/images/banner.png
--------------------------------------------------------------------------------
/images/demo_1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/images/demo_1.gif
--------------------------------------------------------------------------------
/images/demo_2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vvusu/LNTheme/5cd84bfeab5ba863f720d93645dac732c4e17f39/images/demo_2.gif
--------------------------------------------------------------------------------