├── .gitignore
├── Example
├── AppDelegate.swift
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ ├── LaunchImage.launchimage
│ │ └── Contents.json
│ └── Logo.imageset
│ │ ├── Contents.json
│ │ ├── Logo.png
│ │ └── Logo@2x.png
├── Info.plist
├── Main.storyboard
├── ViewController.swift
└── iOS Example-Bridging-Header.h
├── LICENSE
├── LoadingImageView Example.xcodeproj
└── project.pbxproj
├── LoadingImageView.podspec
├── LoadingImageView.xcworkspace
└── contents.xcworkspacedata
├── Podfile
├── Podfile.lock
├── Pods
├── Local Podspecs
│ └── LoadingImageView.podspec.json
├── Manifest.lock
├── Pods.xcodeproj
│ └── project.pbxproj
└── Target Support Files
│ ├── Pods-LoadingImageView Example-LoadingImageView
│ ├── Info.plist
│ ├── Pods-LoadingImageView Example-LoadingImageView-Private.xcconfig
│ ├── Pods-LoadingImageView Example-LoadingImageView-dummy.m
│ ├── Pods-LoadingImageView Example-LoadingImageView-prefix.pch
│ ├── Pods-LoadingImageView Example-LoadingImageView-umbrella.h
│ ├── Pods-LoadingImageView Example-LoadingImageView.modulemap
│ └── Pods-LoadingImageView Example-LoadingImageView.xcconfig
│ └── Pods-LoadingImageView Example
│ ├── Info.plist
│ ├── Pods-LoadingImageView Example-acknowledgements.markdown
│ ├── Pods-LoadingImageView Example-acknowledgements.plist
│ ├── Pods-LoadingImageView Example-dummy.m
│ ├── Pods-LoadingImageView Example-environment.h
│ ├── Pods-LoadingImageView Example-frameworks.sh
│ ├── Pods-LoadingImageView Example-resources.sh
│ ├── Pods-LoadingImageView Example-umbrella.h
│ ├── Pods-LoadingImageView Example.debug.xcconfig
│ ├── Pods-LoadingImageView Example.modulemap
│ └── Pods-LoadingImageView Example.release.xcconfig
├── README.md
├── Screenshots
├── IBInspectableSupport.jpg
└── LoadingImageShowcase.gif
└── Source
├── BezierPath.swift
├── Info.plist
└── LoadingImageView.swift
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | build/
4 | *.pbxuser
5 | !default.pbxuser
6 | *.mode1v3
7 | !default.mode1v3
8 | *.mode2v3
9 | !default.mode2v3
10 | *.perspectivev3
11 | !default.perspectivev3
12 | xcuserdata
13 | *.xccheckout
14 | *.moved-aside
15 | DerivedData
16 | *.hmap
17 | *.ipa
18 | *.xcuserstate
19 |
20 | # CocoaPods
21 | #
22 | # We recommend against adding the Pods directory to your .gitignore. However
23 | # you should judge for yourself, the pros and cons are mentioned at:
24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
25 | #
26 | # Pods/
27 |
--------------------------------------------------------------------------------
/Example/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // LoadingImageView
4 | //
5 | // Created by Cezar Cocu on 1/2/15.
6 | // Copyright (c) 2015 Cezar Cocu. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 | var window: UIWindow?
15 |
16 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
17 | // Override point for customization after application launch.
18 | return true
19 | }
20 | }
--------------------------------------------------------------------------------
/Example/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "size" : "29x29",
21 | "scale" : "1x"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "size" : "29x29",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "ipad",
30 | "size" : "40x40",
31 | "scale" : "1x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "40x40",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "76x76",
41 | "scale" : "1x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "76x76",
46 | "scale" : "2x"
47 | }
48 | ],
49 | "info" : {
50 | "version" : 1,
51 | "author" : "xcode"
52 | }
53 | }
--------------------------------------------------------------------------------
/Example/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/Example/Images.xcassets/Logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "Logo.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "Logo@2x.png"
12 | }
13 | ],
14 | "info" : {
15 | "version" : 1,
16 | "author" : "xcode"
17 | }
18 | }
--------------------------------------------------------------------------------
/Example/Images.xcassets/Logo.imageset/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cezarc1/LoadingImageView/9f8ff2da26925a0eb81e28d8f93144a0d650b5e5/Example/Images.xcassets/Logo.imageset/Logo.png
--------------------------------------------------------------------------------
/Example/Images.xcassets/Logo.imageset/Logo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cezarc1/LoadingImageView/9f8ff2da26925a0eb81e28d8f93144a0d650b5e5/Example/Images.xcassets/Logo.imageset/Logo@2x.png
--------------------------------------------------------------------------------
/Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | com.cezarcocu.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | Alamofire
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UIStatusBarTintParameters
32 |
33 | UINavigationBar
34 |
35 | Style
36 | UIBarStyleDefault
37 | Translucent
38 |
39 |
40 |
41 | UISupportedInterfaceOrientations
42 |
43 | UIInterfaceOrientationPortrait
44 |
45 | UISupportedInterfaceOrientations~ipad
46 |
47 | UIInterfaceOrientationPortrait
48 | UIInterfaceOrientationPortraitUpsideDown
49 | UIInterfaceOrientationLandscapeLeft
50 | UIInterfaceOrientationLandscapeRight
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/Example/Main.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 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/Example/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // LoadingImageView
4 | //
5 | // Created by Cezar Cocu on 1/2/15.
6 | // Copyright (c) 2015 Cezar Cocu. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import LoadingImageView
11 |
12 | class ViewController: UITableViewController {
13 | let catURLs = [ NSURL(string: "http://www.mnftiu.cc/wp-content/uploads/2012/12/77669-cats-funny-cat.jpg")!,
14 | NSURL(string: "http://www.neighborhoodcats.org/uploads/Image/Right%20panel%20images/nycfcc%20site%201.jpg")!,
15 | NSURL(string: "http://images4.fanpop.com/image/photos/22000000/-_-cats-cats-22066030-1024-768.jpg")!,
16 | NSURL(string: "http://momusnajmi.files.wordpress.com/2014/12/cat-music.jpg")!,
17 | NSURL(string: "http://blogs.biomedcentral.com/bmcblog/files/2014/02/Benjamin-Blonder.png")!,
18 | NSURL(string: "https://catfishes.files.wordpress.com/2013/03/cat-breaded.jpg")!]
19 |
20 | override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
21 | return catURLs.count
22 | }
23 |
24 | override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
25 | let cell = tableView.dequeueReusableCellWithIdentifier("loadingCell", forIndexPath: indexPath) as! LoadingTableViewCell
26 |
27 | let imageView = LoadingImageView()
28 | view.addSubview(imageView)
29 |
30 | let imageURL = catURLs[indexPath.row % catURLs.count]
31 | cell.configure(imageURL)
32 | return cell
33 | }
34 | override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
35 | return CGFloat(200.0)
36 | }
37 | }
38 |
39 | class LoadingTableViewCell: UITableViewCell {
40 |
41 | @IBOutlet weak var loadingImageView: LoadingImageView!
42 |
43 | func configure(imageURL: NSURL) {
44 | loadingImageView.downloadImage(imageURL, placeholder: nil)
45 | }
46 |
47 | }
--------------------------------------------------------------------------------
/Example/iOS Example-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015 Cezar Cocu
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/LoadingImageView Example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 88C795E2442A07DB119FC99F /* Pods_LoadingImageView_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D82046429C47AF756C1BCA63 /* Pods_LoadingImageView_Example.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
11 | F7297CEA1A85C657002767FB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7297CE81A85C657002767FB /* AppDelegate.swift */; };
12 | F7297CEB1A85C657002767FB /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7297CE91A85C657002767FB /* ViewController.swift */; };
13 | F7297CED1A85C66C002767FB /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7297CEC1A85C66C002767FB /* Main.storyboard */; };
14 | F77A9F9B1A85CDE9007E42B4 /* Pods-LoadingImageView Example.debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = F77A9F991A85CDE9007E42B4 /* Pods-LoadingImageView Example.debug.xcconfig */; };
15 | F77A9F9C1A85CDE9007E42B4 /* Pods-LoadingImageView Example.release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = F77A9F9A1A85CDE9007E42B4 /* Pods-LoadingImageView Example.release.xcconfig */; };
16 | F8111E1419A951050040E7D1 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F8111E1319A951050040E7D1 /* Images.xcassets */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXFileReference section */
20 | 4EEEDE5D19C6F39708A8F116 /* Pods_iOS_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
21 | D82046429C47AF756C1BCA63 /* Pods_LoadingImageView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LoadingImageView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
22 | F7297CE71A85C656002767FB /* iOS Example-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "iOS Example-Bridging-Header.h"; sourceTree = ""; };
23 | F7297CE81A85C657002767FB /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
24 | F7297CE91A85C657002767FB /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
25 | F7297CEC1A85C66C002767FB /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; };
26 | F77A9F991A85CDE9007E42B4 /* Pods-LoadingImageView Example.debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Pods-LoadingImageView Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.debug.xcconfig"; sourceTree = ""; };
27 | F77A9F9A1A85CDE9007E42B4 /* Pods-LoadingImageView Example.release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Pods-LoadingImageView Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.release.xcconfig"; sourceTree = ""; };
28 | F8111E0519A951050040E7D1 /* LoadingImageView Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "LoadingImageView Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
29 | F8111E0919A951050040E7D1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
30 | F8111E1319A951050040E7D1 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
31 | /* End PBXFileReference section */
32 |
33 | /* Begin PBXFrameworksBuildPhase section */
34 | F8111E0219A951050040E7D1 /* Frameworks */ = {
35 | isa = PBXFrameworksBuildPhase;
36 | buildActionMask = 2147483647;
37 | files = (
38 | 88C795E2442A07DB119FC99F /* Pods_LoadingImageView_Example.framework in Frameworks */,
39 | );
40 | runOnlyForDeploymentPostprocessing = 0;
41 | };
42 | /* End PBXFrameworksBuildPhase section */
43 |
44 | /* Begin PBXGroup section */
45 | 2D42BDE636F2C5E26D98A0B6 /* Pods */ = {
46 | isa = PBXGroup;
47 | children = (
48 | F77A9F991A85CDE9007E42B4 /* Pods-LoadingImageView Example.debug.xcconfig */,
49 | F77A9F9A1A85CDE9007E42B4 /* Pods-LoadingImageView Example.release.xcconfig */,
50 | );
51 | name = Pods;
52 | sourceTree = "";
53 | };
54 | D8ADE35CA568F7C97750679B /* Frameworks */ = {
55 | isa = PBXGroup;
56 | children = (
57 | 4EEEDE5D19C6F39708A8F116 /* Pods_iOS_Example.framework */,
58 | D82046429C47AF756C1BCA63 /* Pods_LoadingImageView_Example.framework */,
59 | );
60 | name = Frameworks;
61 | sourceTree = "";
62 | };
63 | F8111DFC19A951050040E7D1 = {
64 | isa = PBXGroup;
65 | children = (
66 | F8111E0719A951050040E7D1 /* Source */,
67 | F8111E0619A951050040E7D1 /* Products */,
68 | 2D42BDE636F2C5E26D98A0B6 /* Pods */,
69 | D8ADE35CA568F7C97750679B /* Frameworks */,
70 | );
71 | sourceTree = "";
72 | };
73 | F8111E0619A951050040E7D1 /* Products */ = {
74 | isa = PBXGroup;
75 | children = (
76 | F8111E0519A951050040E7D1 /* LoadingImageView Example.app */,
77 | );
78 | name = Products;
79 | sourceTree = "";
80 | };
81 | F8111E0719A951050040E7D1 /* Source */ = {
82 | isa = PBXGroup;
83 | children = (
84 | F7297CEC1A85C66C002767FB /* Main.storyboard */,
85 | F8111E1319A951050040E7D1 /* Images.xcassets */,
86 | F7297CE81A85C657002767FB /* AppDelegate.swift */,
87 | F7297CE91A85C657002767FB /* ViewController.swift */,
88 | F8111E0819A951050040E7D1 /* Supporting Files */,
89 | F7297CE71A85C656002767FB /* iOS Example-Bridging-Header.h */,
90 | );
91 | name = Source;
92 | path = Example;
93 | sourceTree = "";
94 | };
95 | F8111E0819A951050040E7D1 /* Supporting Files */ = {
96 | isa = PBXGroup;
97 | children = (
98 | F8111E0919A951050040E7D1 /* Info.plist */,
99 | );
100 | name = "Supporting Files";
101 | sourceTree = "";
102 | };
103 | /* End PBXGroup section */
104 |
105 | /* Begin PBXNativeTarget section */
106 | F8111E0419A951050040E7D1 /* LoadingImageView Example */ = {
107 | isa = PBXNativeTarget;
108 | buildConfigurationList = F8111E2319A951050040E7D1 /* Build configuration list for PBXNativeTarget "LoadingImageView Example" */;
109 | buildPhases = (
110 | 6540B3CA5F945114F2BD9C7B /* Check Pods Manifest.lock */,
111 | F8111E0119A951050040E7D1 /* Sources */,
112 | F8111E0219A951050040E7D1 /* Frameworks */,
113 | F8111E0319A951050040E7D1 /* Resources */,
114 | 232F8168EB8673C9D2405BA7 /* Embed Pods Frameworks */,
115 | B81850C1CB84CCCCFC8FFC52 /* Copy Pods Resources */,
116 | );
117 | buildRules = (
118 | );
119 | dependencies = (
120 | );
121 | name = "LoadingImageView Example";
122 | productName = Alamofire;
123 | productReference = F8111E0519A951050040E7D1 /* LoadingImageView Example.app */;
124 | productType = "com.apple.product-type.application";
125 | };
126 | /* End PBXNativeTarget section */
127 |
128 | /* Begin PBXProject section */
129 | F8111DFD19A951050040E7D1 /* Project object */ = {
130 | isa = PBXProject;
131 | attributes = {
132 | LastUpgradeCheck = 0600;
133 | ORGANIZATIONNAME = Alamofire;
134 | TargetAttributes = {
135 | F8111E0419A951050040E7D1 = {
136 | CreatedOnToolsVersion = 6.0;
137 | };
138 | };
139 | };
140 | buildConfigurationList = F8111E0019A951050040E7D1 /* Build configuration list for PBXProject "LoadingImageView Example" */;
141 | compatibilityVersion = "Xcode 3.2";
142 | developmentRegion = English;
143 | hasScannedForEncodings = 0;
144 | knownRegions = (
145 | en,
146 | Base,
147 | );
148 | mainGroup = F8111DFC19A951050040E7D1;
149 | productRefGroup = F8111E0619A951050040E7D1 /* Products */;
150 | projectDirPath = "";
151 | projectRoot = "";
152 | targets = (
153 | F8111E0419A951050040E7D1 /* LoadingImageView Example */,
154 | );
155 | };
156 | /* End PBXProject section */
157 |
158 | /* Begin PBXResourcesBuildPhase section */
159 | F8111E0319A951050040E7D1 /* Resources */ = {
160 | isa = PBXResourcesBuildPhase;
161 | buildActionMask = 2147483647;
162 | files = (
163 | F8111E1419A951050040E7D1 /* Images.xcassets in Resources */,
164 | F7297CED1A85C66C002767FB /* Main.storyboard in Resources */,
165 | F77A9F9B1A85CDE9007E42B4 /* Pods-LoadingImageView Example.debug.xcconfig in Resources */,
166 | F77A9F9C1A85CDE9007E42B4 /* Pods-LoadingImageView Example.release.xcconfig in Resources */,
167 | );
168 | runOnlyForDeploymentPostprocessing = 0;
169 | };
170 | /* End PBXResourcesBuildPhase section */
171 |
172 | /* Begin PBXShellScriptBuildPhase section */
173 | 232F8168EB8673C9D2405BA7 /* Embed Pods Frameworks */ = {
174 | isa = PBXShellScriptBuildPhase;
175 | buildActionMask = 2147483647;
176 | files = (
177 | );
178 | inputPaths = (
179 | );
180 | name = "Embed Pods Frameworks";
181 | outputPaths = (
182 | );
183 | runOnlyForDeploymentPostprocessing = 0;
184 | shellPath = /bin/sh;
185 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-frameworks.sh\"\n";
186 | showEnvVarsInLog = 0;
187 | };
188 | 6540B3CA5F945114F2BD9C7B /* Check Pods Manifest.lock */ = {
189 | isa = PBXShellScriptBuildPhase;
190 | buildActionMask = 2147483647;
191 | files = (
192 | );
193 | inputPaths = (
194 | );
195 | name = "Check Pods Manifest.lock";
196 | outputPaths = (
197 | );
198 | runOnlyForDeploymentPostprocessing = 0;
199 | shellPath = /bin/sh;
200 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
201 | showEnvVarsInLog = 0;
202 | };
203 | B81850C1CB84CCCCFC8FFC52 /* Copy Pods Resources */ = {
204 | isa = PBXShellScriptBuildPhase;
205 | buildActionMask = 2147483647;
206 | files = (
207 | );
208 | inputPaths = (
209 | );
210 | name = "Copy Pods Resources";
211 | outputPaths = (
212 | );
213 | runOnlyForDeploymentPostprocessing = 0;
214 | shellPath = /bin/sh;
215 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-resources.sh\"\n";
216 | showEnvVarsInLog = 0;
217 | };
218 | /* End PBXShellScriptBuildPhase section */
219 |
220 | /* Begin PBXSourcesBuildPhase section */
221 | F8111E0119A951050040E7D1 /* Sources */ = {
222 | isa = PBXSourcesBuildPhase;
223 | buildActionMask = 2147483647;
224 | files = (
225 | F7297CEB1A85C657002767FB /* ViewController.swift in Sources */,
226 | F7297CEA1A85C657002767FB /* AppDelegate.swift in Sources */,
227 | );
228 | runOnlyForDeploymentPostprocessing = 0;
229 | };
230 | /* End PBXSourcesBuildPhase section */
231 |
232 | /* Begin XCBuildConfiguration section */
233 | F8111E2119A951050040E7D1 /* Debug */ = {
234 | isa = XCBuildConfiguration;
235 | buildSettings = {
236 | ALWAYS_SEARCH_USER_PATHS = NO;
237 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
238 | CLANG_CXX_LIBRARY = "libc++";
239 | CLANG_ENABLE_MODULES = YES;
240 | CLANG_ENABLE_OBJC_ARC = YES;
241 | CLANG_WARN_BOOL_CONVERSION = YES;
242 | CLANG_WARN_CONSTANT_CONVERSION = YES;
243 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
244 | CLANG_WARN_EMPTY_BODY = YES;
245 | CLANG_WARN_ENUM_CONVERSION = YES;
246 | CLANG_WARN_INT_CONVERSION = YES;
247 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
248 | CLANG_WARN_UNREACHABLE_CODE = YES;
249 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
250 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
251 | COPY_PHASE_STRIP = NO;
252 | ENABLE_STRICT_OBJC_MSGSEND = YES;
253 | GCC_C_LANGUAGE_STANDARD = gnu99;
254 | GCC_DYNAMIC_NO_PIC = NO;
255 | GCC_OPTIMIZATION_LEVEL = 0;
256 | GCC_PREPROCESSOR_DEFINITIONS = (
257 | "DEBUG=1",
258 | "$(inherited)",
259 | );
260 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
261 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
262 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
263 | GCC_WARN_UNDECLARED_SELECTOR = YES;
264 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
265 | GCC_WARN_UNUSED_FUNCTION = YES;
266 | GCC_WARN_UNUSED_VARIABLE = YES;
267 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
268 | MTL_ENABLE_DEBUG_INFO = YES;
269 | ONLY_ACTIVE_ARCH = YES;
270 | SDKROOT = iphoneos;
271 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
272 | TARGETED_DEVICE_FAMILY = "1,2";
273 | };
274 | name = Debug;
275 | };
276 | F8111E2219A951050040E7D1 /* Release */ = {
277 | isa = XCBuildConfiguration;
278 | buildSettings = {
279 | ALWAYS_SEARCH_USER_PATHS = NO;
280 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
281 | CLANG_CXX_LIBRARY = "libc++";
282 | CLANG_ENABLE_MODULES = YES;
283 | CLANG_ENABLE_OBJC_ARC = YES;
284 | CLANG_WARN_BOOL_CONVERSION = YES;
285 | CLANG_WARN_CONSTANT_CONVERSION = YES;
286 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
287 | CLANG_WARN_EMPTY_BODY = YES;
288 | CLANG_WARN_ENUM_CONVERSION = YES;
289 | CLANG_WARN_INT_CONVERSION = YES;
290 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
291 | CLANG_WARN_UNREACHABLE_CODE = YES;
292 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
293 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
294 | COPY_PHASE_STRIP = YES;
295 | ENABLE_NS_ASSERTIONS = NO;
296 | ENABLE_STRICT_OBJC_MSGSEND = YES;
297 | GCC_C_LANGUAGE_STANDARD = gnu99;
298 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
299 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
300 | GCC_WARN_UNDECLARED_SELECTOR = YES;
301 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
302 | GCC_WARN_UNUSED_FUNCTION = YES;
303 | GCC_WARN_UNUSED_VARIABLE = YES;
304 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
305 | MTL_ENABLE_DEBUG_INFO = NO;
306 | SDKROOT = iphoneos;
307 | TARGETED_DEVICE_FAMILY = "1,2";
308 | VALIDATE_PRODUCT = YES;
309 | };
310 | name = Release;
311 | };
312 | F8111E2419A951050040E7D1 /* Debug */ = {
313 | isa = XCBuildConfiguration;
314 | baseConfigurationReference = F77A9F991A85CDE9007E42B4 /* Pods-LoadingImageView Example.debug.xcconfig */;
315 | buildSettings = {
316 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
317 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
318 | CLANG_ENABLE_MODULES = YES;
319 | INFOPLIST_FILE = "$(SRCROOT)/Example/Info.plist";
320 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
321 | PRODUCT_NAME = "LoadingImageView Example";
322 | SWIFT_OBJC_BRIDGING_HEADER = "Example/iOS Example-Bridging-Header.h";
323 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
324 | };
325 | name = Debug;
326 | };
327 | F8111E2519A951050040E7D1 /* Release */ = {
328 | isa = XCBuildConfiguration;
329 | baseConfigurationReference = F77A9F9A1A85CDE9007E42B4 /* Pods-LoadingImageView Example.release.xcconfig */;
330 | buildSettings = {
331 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
332 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
333 | CLANG_ENABLE_MODULES = YES;
334 | INFOPLIST_FILE = "$(SRCROOT)/Example/Info.plist";
335 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
336 | PRODUCT_NAME = "LoadingImageView Example";
337 | SWIFT_OBJC_BRIDGING_HEADER = "Example/iOS Example-Bridging-Header.h";
338 | };
339 | name = Release;
340 | };
341 | /* End XCBuildConfiguration section */
342 |
343 | /* Begin XCConfigurationList section */
344 | F8111E0019A951050040E7D1 /* Build configuration list for PBXProject "LoadingImageView Example" */ = {
345 | isa = XCConfigurationList;
346 | buildConfigurations = (
347 | F8111E2119A951050040E7D1 /* Debug */,
348 | F8111E2219A951050040E7D1 /* Release */,
349 | );
350 | defaultConfigurationIsVisible = 0;
351 | defaultConfigurationName = Release;
352 | };
353 | F8111E2319A951050040E7D1 /* Build configuration list for PBXNativeTarget "LoadingImageView Example" */ = {
354 | isa = XCConfigurationList;
355 | buildConfigurations = (
356 | F8111E2419A951050040E7D1 /* Debug */,
357 | F8111E2519A951050040E7D1 /* Release */,
358 | );
359 | defaultConfigurationIsVisible = 0;
360 | defaultConfigurationName = Release;
361 | };
362 | /* End XCConfigurationList section */
363 | };
364 | rootObject = F8111DFD19A951050040E7D1 /* Project object */;
365 | }
366 |
--------------------------------------------------------------------------------
/LoadingImageView.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = 'LoadingImageView'
3 | s.version = '0.1.2'
4 | s.license = 'MIT'
5 | s.summary = 'Loading Indicator for UIImageView, written in Swift'
6 | s.homepage = 'https://github.com/ggamecrazy/LoadingImageView'
7 | s.social_media_url = 'https://twitter.com/ggamecrazy'
8 | s.authors = { 'Cezar Cocu' => 'me@cezarcocu.com' }
9 | s.source = { :git => 'https://github.com/ggamecrazy/LoadingImageView.git', :tag => '0.1.2' }
10 | s.requires_arc = true
11 | s.ios.framework = 'UIKit'
12 |
13 | s.ios.deployment_target = '8.0'
14 |
15 | s.source_files = 'Source/*.swift'
16 | end
17 |
--------------------------------------------------------------------------------
/LoadingImageView.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | source 'https://github.com/CocoaPods/Specs.git'
2 |
3 | workspace 'LoadingImageView.xcworkspace'
4 | xcodeproj 'LoadingImageView Example.xcodeproj'
5 |
6 | target 'LoadingImageView Example' do
7 | platform :ios, '8.0'
8 | use_frameworks!
9 | pod 'LoadingImageView', :path => '.'
10 | end
11 |
12 |
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - LoadingImageView (0.1.2)
3 |
4 | DEPENDENCIES:
5 | - LoadingImageView (from `.`)
6 |
7 | EXTERNAL SOURCES:
8 | LoadingImageView:
9 | :path: .
10 |
11 | SPEC CHECKSUMS:
12 | LoadingImageView: b2c33bffdeb6a0bf2d6f9beefa0ec83b1f80f004
13 |
14 | COCOAPODS: 0.36.0.beta.2
15 |
--------------------------------------------------------------------------------
/Pods/Local Podspecs/LoadingImageView.podspec.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LoadingImageView",
3 | "version": "0.1.2",
4 | "license": "MIT",
5 | "summary": "Loading Indicator for UIImageView, written in Swift",
6 | "homepage": "https://github.com/ggamecrazy/LoadingImageView",
7 | "social_media_url": "https://twitter.com/ggamecrazy",
8 | "authors": {
9 | "Cezar Cocu": "me@cezarcocu.com"
10 | },
11 | "source": {
12 | "git": "https://github.com/ggamecrazy/LoadingImageView.git",
13 | "tag": "0.1.2"
14 | },
15 | "requires_arc": true,
16 | "ios": {
17 | "frameworks": "UIKit"
18 | },
19 | "platforms": {
20 | "ios": "8.0"
21 | },
22 | "source_files": "Source/*.swift"
23 | }
24 |
--------------------------------------------------------------------------------
/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - LoadingImageView (0.1.2)
3 |
4 | DEPENDENCIES:
5 | - LoadingImageView (from `.`)
6 |
7 | EXTERNAL SOURCES:
8 | LoadingImageView:
9 | :path: .
10 |
11 | SPEC CHECKSUMS:
12 | LoadingImageView: b2c33bffdeb6a0bf2d6f9beefa0ec83b1f80f004
13 |
14 | COCOAPODS: 0.36.0.beta.2
15 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | archiveVersion
6 | 1
7 | classes
8 |
9 | objectVersion
10 | 46
11 | objects
12 |
13 | 0247B84460F21A4EBAE23C7E
14 |
15 | explicitFileType
16 | wrapper.framework
17 | includeInIndex
18 | 0
19 | isa
20 | PBXFileReference
21 | name
22 | LoadingImageView.framework
23 | path
24 | LoadingImageView.framework
25 | sourceTree
26 | BUILT_PRODUCTS_DIR
27 |
28 | 041D3F0BAAACFE94E19B414F
29 |
30 | includeInIndex
31 | 1
32 | isa
33 | PBXFileReference
34 | lastKnownFileType
35 | sourcecode.c.h
36 | path
37 | Pods-LoadingImageView Example-umbrella.h
38 | sourceTree
39 | <group>
40 |
41 | 0818E6CDA8FE490466745A0B
42 |
43 | includeInIndex
44 | 1
45 | isa
46 | PBXFileReference
47 | lastKnownFileType
48 | text
49 | path
50 | Pods-LoadingImageView Example-acknowledgements.markdown
51 | sourceTree
52 | <group>
53 |
54 | 0E937777F078160339D5062F
55 |
56 | includeInIndex
57 | 1
58 | isa
59 | PBXFileReference
60 | lastKnownFileType
61 | text.plist.xml
62 | path
63 | Info.plist
64 | sourceTree
65 | <group>
66 |
67 | 1AA56C8ED05D062B78B2EEBD
68 |
69 | includeInIndex
70 | 1
71 | isa
72 | PBXFileReference
73 | lastKnownFileType
74 | text
75 | name
76 | Podfile
77 | path
78 | ../Podfile
79 | sourceTree
80 | SOURCE_ROOT
81 | xcLanguageSpecificationIdentifier
82 | xcode.lang.ruby
83 |
84 | 240D581572D6B6270DAEE0FD
85 |
86 | includeInIndex
87 | 1
88 | isa
89 | PBXFileReference
90 | lastKnownFileType
91 | text.plist.xml
92 | path
93 | Info.plist
94 | sourceTree
95 | <group>
96 |
97 | 24C2820841B2066AD27060AD
98 |
99 | includeInIndex
100 | 1
101 | isa
102 | PBXFileReference
103 | lastKnownFileType
104 | sourcecode.swift
105 | path
106 | LoadingImageView.swift
107 | sourceTree
108 | <group>
109 |
110 | 24F78B0225FFC702E5C6049E
111 |
112 | buildConfigurationList
113 | BB4751B8F772E4FD5B4330EC
114 | buildPhases
115 |
116 | 2643179D0CED1F6F4FF3C91C
117 | 7383A5F39D803453FF4298C0
118 | D6C14AA164B32EC199D5527B
119 |
120 | buildRules
121 |
122 | dependencies
123 |
124 | FDDEBC422B400D500EE745E9
125 |
126 | isa
127 | PBXNativeTarget
128 | name
129 | Pods-LoadingImageView Example
130 | productName
131 | Pods-LoadingImageView Example
132 | productReference
133 | CBF865614C2493E0BDE7835C
134 | productType
135 | com.apple.product-type.framework
136 |
137 | 2643179D0CED1F6F4FF3C91C
138 |
139 | buildActionMask
140 | 2147483647
141 | files
142 |
143 | 84A05434EB4755044B05A159
144 |
145 | isa
146 | PBXSourcesBuildPhase
147 | runOnlyForDeploymentPostprocessing
148 | 0
149 |
150 | 2725CE92BF7854F0B4678E51
151 |
152 | includeInIndex
153 | 1
154 | isa
155 | PBXFileReference
156 | lastKnownFileType
157 | sourcecode.swift
158 | path
159 | BezierPath.swift
160 | sourceTree
161 | <group>
162 |
163 | 2974E3D07B320CD52C9CEB06
164 |
165 | includeInIndex
166 | 1
167 | isa
168 | PBXFileReference
169 | lastKnownFileType
170 | sourcecode.c.objc
171 | path
172 | Pods-LoadingImageView Example-dummy.m
173 | sourceTree
174 | <group>
175 |
176 | 29DD0EFCE35AA997A2E4932C
177 |
178 | fileRef
179 | FA726866A79F6D05E5CC6CBC
180 | isa
181 | PBXBuildFile
182 |
183 | 2BA17FD8813DDAA7E3E3033D
184 |
185 | children
186 |
187 | 7A8C5DC22146A8D5F29F9700
188 | B645C9F4B01DCBD256320BA1
189 |
190 | isa
191 | PBXGroup
192 | name
193 | iOS
194 | sourceTree
195 | <group>
196 |
197 | 350F0A137DB1414FED44D882
198 |
199 | includeInIndex
200 | 1
201 | isa
202 | PBXFileReference
203 | lastKnownFileType
204 | text.script.sh
205 | path
206 | Pods-LoadingImageView Example-resources.sh
207 | sourceTree
208 | <group>
209 |
210 | 401A6117FE1D46601D8EBC3C
211 |
212 | children
213 |
214 | 1AA56C8ED05D062B78B2EEBD
215 | BCFC8944E20F95CC940A7CDF
216 | FB4256E781D4B3F5CF42027A
217 | ACA28C7D21BCC056685A2730
218 | 97C3D93DE048EA7C9E41BAA4
219 |
220 | isa
221 | PBXGroup
222 | sourceTree
223 | <group>
224 |
225 | 40C52BBFA39357D27A10704B
226 |
227 | buildActionMask
228 | 2147483647
229 | files
230 |
231 | 58E90DCDD75ED28FDF8AE2A1
232 |
233 | isa
234 | PBXHeadersBuildPhase
235 | runOnlyForDeploymentPostprocessing
236 | 0
237 |
238 | 4B8E611AA3CBCB79E4650B04
239 |
240 | includeInIndex
241 | 1
242 | isa
243 | PBXFileReference
244 | lastKnownFileType
245 | text.plist.xml
246 | path
247 | Pods-LoadingImageView Example-acknowledgements.plist
248 | sourceTree
249 | <group>
250 |
251 | 4F3BFA05FD93D7F81684DCCF
252 |
253 | buildSettings
254 |
255 | ALWAYS_SEARCH_USER_PATHS
256 | NO
257 | CLANG_CXX_LANGUAGE_STANDARD
258 | gnu++0x
259 | CLANG_CXX_LIBRARY
260 | libc++
261 | CLANG_ENABLE_MODULES
262 | YES
263 | CLANG_ENABLE_OBJC_ARC
264 | YES
265 | CLANG_WARN_BOOL_CONVERSION
266 | YES
267 | CLANG_WARN_CONSTANT_CONVERSION
268 | YES
269 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE
270 | YES
271 | CLANG_WARN_EMPTY_BODY
272 | YES
273 | CLANG_WARN_ENUM_CONVERSION
274 | YES
275 | CLANG_WARN_INT_CONVERSION
276 | YES
277 | CLANG_WARN_OBJC_ROOT_CLASS
278 | YES
279 | CLANG_WARN_UNREACHABLE_CODE
280 | YES
281 | CLANG_WARN__DUPLICATE_METHOD_MATCH
282 | YES
283 | COPY_PHASE_STRIP
284 | NO
285 | ENABLE_NS_ASSERTIONS
286 | NO
287 | GCC_C_LANGUAGE_STANDARD
288 | gnu99
289 | GCC_PREPROCESSOR_DEFINITIONS
290 |
291 | RELEASE=1
292 |
293 | GCC_WARN_64_TO_32_BIT_CONVERSION
294 | YES
295 | GCC_WARN_ABOUT_RETURN_TYPE
296 | YES
297 | GCC_WARN_UNDECLARED_SELECTOR
298 | YES
299 | GCC_WARN_UNINITIALIZED_AUTOS
300 | YES
301 | GCC_WARN_UNUSED_FUNCTION
302 | YES
303 | GCC_WARN_UNUSED_VARIABLE
304 | YES
305 | IPHONEOS_DEPLOYMENT_TARGET
306 | 8.0
307 | STRIP_INSTALLED_PRODUCT
308 | NO
309 | VALIDATE_PRODUCT
310 | YES
311 |
312 | isa
313 | XCBuildConfiguration
314 | name
315 | Release
316 |
317 | 55F12D830C6347C85F8EB881
318 |
319 | fileRef
320 | 7A8C5DC22146A8D5F29F9700
321 | isa
322 | PBXBuildFile
323 |
324 | 589C84D0F9C153E2EF9227CF
325 |
326 | includeInIndex
327 | 1
328 | isa
329 | PBXFileReference
330 | path
331 | Pods-LoadingImageView Example.modulemap
332 | sourceTree
333 | <group>
334 |
335 | 58E90DCDD75ED28FDF8AE2A1
336 |
337 | fileRef
338 | 80C8CEC9328338B095382496
339 | isa
340 | PBXBuildFile
341 | settings
342 |
343 | ATTRIBUTES
344 |
345 | Public
346 |
347 |
348 |
349 | 5A42B4EE4A6CB55A28ED9008
350 |
351 | baseConfigurationReference
352 | BD7DC84BCE67ED5BA53F4C79
353 | buildSettings
354 |
355 | CODE_SIGN_IDENTITY[sdk=iphoneos*]
356 | iPhone Developer
357 | CURRENT_PROJECT_VERSION
358 | 1
359 | DEFINES_MODULE
360 | YES
361 | DYLIB_COMPATIBILITY_VERSION
362 | 1
363 | DYLIB_CURRENT_VERSION
364 | 1
365 | DYLIB_INSTALL_NAME_BASE
366 | @rpath
367 | ENABLE_STRICT_OBJC_MSGSEND
368 | YES
369 | GCC_PREFIX_HEADER
370 | Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView-prefix.pch
371 | INFOPLIST_FILE
372 | Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Info.plist
373 | INSTALL_PATH
374 | $(LOCAL_LIBRARY_DIR)/Frameworks
375 | IPHONEOS_DEPLOYMENT_TARGET
376 | 8.0
377 | LD_RUNPATH_SEARCH_PATHS
378 |
379 | $(inherited)
380 | @executable_path/Frameworks
381 | @loader_path/Frameworks
382 |
383 | MODULEMAP_FILE
384 | Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView.modulemap
385 | MTL_ENABLE_DEBUG_INFO
386 | YES
387 | PRODUCT_NAME
388 | LoadingImageView
389 | SDKROOT
390 | iphoneos
391 | SKIP_INSTALL
392 | YES
393 | TARGETED_DEVICE_FAMILY
394 | 1,2
395 | VERSIONING_SYSTEM
396 | apple-generic
397 | VERSION_INFO_PREFIX
398 |
399 |
400 | isa
401 | XCBuildConfiguration
402 | name
403 | Debug
404 |
405 | 5A8517EE0A3A2547E6AF40F8
406 |
407 | includeInIndex
408 | 1
409 | isa
410 | PBXFileReference
411 | lastKnownFileType
412 | text.script.sh
413 | path
414 | Pods-LoadingImageView Example-frameworks.sh
415 | sourceTree
416 | <group>
417 |
418 | 5ADDE4D00B98B2B14EA3B1EE
419 |
420 | fileRef
421 | 24C2820841B2066AD27060AD
422 | isa
423 | PBXBuildFile
424 |
425 | 5C6818B9DC84352DC9D53559
426 |
427 | containerPortal
428 | A0FB8DEFAF6EDDCEA89C5B3D
429 | isa
430 | PBXContainerItemProxy
431 | proxyType
432 | 1
433 | remoteGlobalIDString
434 | ADF6A21E721B1E942B1E23A3
435 | remoteInfo
436 | Pods-LoadingImageView Example-LoadingImageView
437 |
438 | 5C9F49FE1FA393D730F85BB0
439 |
440 | includeInIndex
441 | 1
442 | isa
443 | PBXFileReference
444 | lastKnownFileType
445 | text.xcconfig
446 | path
447 | Pods-LoadingImageView Example-LoadingImageView.xcconfig
448 | sourceTree
449 | <group>
450 |
451 | 5DA928EDB53915AE049B5B33
452 |
453 | buildConfigurations
454 |
455 | 5A42B4EE4A6CB55A28ED9008
456 | E0C05FE1AF707250D871EB1F
457 |
458 | defaultConfigurationIsVisible
459 | 0
460 | defaultConfigurationName
461 | Release
462 | isa
463 | XCConfigurationList
464 |
465 | 610669DA8D32810FFBE53231
466 |
467 | fileRef
468 | 7A8C5DC22146A8D5F29F9700
469 | isa
470 | PBXBuildFile
471 |
472 | 6D1ACB8C96DAE39ABC47D9DD
473 |
474 | includeInIndex
475 | 1
476 | isa
477 | PBXFileReference
478 | lastKnownFileType
479 | sourcecode.c.h
480 | path
481 | Pods-LoadingImageView Example-environment.h
482 | sourceTree
483 | <group>
484 |
485 | 7383A5F39D803453FF4298C0
486 |
487 | buildActionMask
488 | 2147483647
489 | files
490 |
491 | 55F12D830C6347C85F8EB881
492 |
493 | isa
494 | PBXFrameworksBuildPhase
495 | runOnlyForDeploymentPostprocessing
496 | 0
497 |
498 | 7A8C5DC22146A8D5F29F9700
499 |
500 | isa
501 | PBXFileReference
502 | lastKnownFileType
503 | wrapper.framework
504 | name
505 | Foundation.framework
506 | path
507 | Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework
508 | sourceTree
509 | DEVELOPER_DIR
510 |
511 | 80624D291E19359B2FE191C0
512 |
513 | includeInIndex
514 | 1
515 | isa
516 | PBXFileReference
517 | lastKnownFileType
518 | sourcecode.c.h
519 | path
520 | Pods-LoadingImageView Example-LoadingImageView-prefix.pch
521 | sourceTree
522 | <group>
523 |
524 | 807FCBBAF08ACE7490104C8D
525 |
526 | includeInIndex
527 | 1
528 | isa
529 | PBXFileReference
530 | lastKnownFileType
531 | text.xcconfig
532 | path
533 | Pods-LoadingImageView Example.debug.xcconfig
534 | sourceTree
535 | <group>
536 |
537 | 80C8CEC9328338B095382496
538 |
539 | includeInIndex
540 | 1
541 | isa
542 | PBXFileReference
543 | lastKnownFileType
544 | sourcecode.c.h
545 | path
546 | Pods-LoadingImageView Example-LoadingImageView-umbrella.h
547 | sourceTree
548 | <group>
549 |
550 | 84A05434EB4755044B05A159
551 |
552 | fileRef
553 | 2974E3D07B320CD52C9CEB06
554 | isa
555 | PBXBuildFile
556 |
557 | 86ECCD49C9548AF1575E384C
558 |
559 | children
560 |
561 | EC1869C32B3945A694CCDDBD
562 | ADF5E177A15C438D3FF81211
563 |
564 | isa
565 | PBXGroup
566 | name
567 | LoadingImageView
568 | path
569 | ..
570 | sourceTree
571 | <group>
572 |
573 | 97C3D93DE048EA7C9E41BAA4
574 |
575 | children
576 |
577 | EA1B8ACF2854D5874C8F6416
578 |
579 | isa
580 | PBXGroup
581 | name
582 | Targets Support Files
583 | sourceTree
584 | <group>
585 |
586 | 9EB0B268F7714A5496155D55
587 |
588 | buildActionMask
589 | 2147483647
590 | files
591 |
592 | C535328A597012FA05C2BCA9
593 | 5ADDE4D00B98B2B14EA3B1EE
594 | 29DD0EFCE35AA997A2E4932C
595 |
596 | isa
597 | PBXSourcesBuildPhase
598 | runOnlyForDeploymentPostprocessing
599 | 0
600 |
601 | A0FB8DEFAF6EDDCEA89C5B3D
602 |
603 | attributes
604 |
605 | LastUpgradeCheck
606 | 0510
607 |
608 | buildConfigurationList
609 | F386243CCC2ACADE36B31AC1
610 | compatibilityVersion
611 | Xcode 3.2
612 | developmentRegion
613 | English
614 | hasScannedForEncodings
615 | 0
616 | isa
617 | PBXProject
618 | knownRegions
619 |
620 | en
621 |
622 | mainGroup
623 | 401A6117FE1D46601D8EBC3C
624 | productRefGroup
625 | ACA28C7D21BCC056685A2730
626 | projectDirPath
627 |
628 | projectReferences
629 |
630 | projectRoot
631 |
632 | targets
633 |
634 | 24F78B0225FFC702E5C6049E
635 | ADF6A21E721B1E942B1E23A3
636 |
637 |
638 | AC9B40FF275BF36C01C870F9
639 |
640 | fileRef
641 | B645C9F4B01DCBD256320BA1
642 | isa
643 | PBXBuildFile
644 |
645 | ACA28C7D21BCC056685A2730
646 |
647 | children
648 |
649 | 0247B84460F21A4EBAE23C7E
650 | CBF865614C2493E0BDE7835C
651 |
652 | isa
653 | PBXGroup
654 | name
655 | Products
656 | sourceTree
657 | <group>
658 |
659 | ADF5E177A15C438D3FF81211
660 |
661 | children
662 |
663 | 240D581572D6B6270DAEE0FD
664 | E89E759046BCA2CEB7464CC0
665 | 5C9F49FE1FA393D730F85BB0
666 | BD7DC84BCE67ED5BA53F4C79
667 | FA726866A79F6D05E5CC6CBC
668 | 80624D291E19359B2FE191C0
669 | 80C8CEC9328338B095382496
670 |
671 | isa
672 | PBXGroup
673 | name
674 | Support Files
675 | path
676 | Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView
677 | sourceTree
678 | <group>
679 |
680 | ADF6A21E721B1E942B1E23A3
681 |
682 | buildConfigurationList
683 | 5DA928EDB53915AE049B5B33
684 | buildPhases
685 |
686 | 9EB0B268F7714A5496155D55
687 | E186795543198F4F85D60A0A
688 | 40C52BBFA39357D27A10704B
689 |
690 | buildRules
691 |
692 | dependencies
693 |
694 | isa
695 | PBXNativeTarget
696 | name
697 | Pods-LoadingImageView Example-LoadingImageView
698 | productName
699 | Pods-LoadingImageView Example-LoadingImageView
700 | productReference
701 | 0247B84460F21A4EBAE23C7E
702 | productType
703 | com.apple.product-type.framework
704 |
705 | B0955F807F6722910A156DC8
706 |
707 | baseConfigurationReference
708 | 807FCBBAF08ACE7490104C8D
709 | buildSettings
710 |
711 | CODE_SIGN_IDENTITY[sdk=iphoneos*]
712 | iPhone Developer
713 | CURRENT_PROJECT_VERSION
714 | 1
715 | DEFINES_MODULE
716 | YES
717 | DYLIB_COMPATIBILITY_VERSION
718 | 1
719 | DYLIB_CURRENT_VERSION
720 | 1
721 | DYLIB_INSTALL_NAME_BASE
722 | @rpath
723 | ENABLE_STRICT_OBJC_MSGSEND
724 | YES
725 | INFOPLIST_FILE
726 | Target Support Files/Pods-LoadingImageView Example/Info.plist
727 | INSTALL_PATH
728 | $(LOCAL_LIBRARY_DIR)/Frameworks
729 | IPHONEOS_DEPLOYMENT_TARGET
730 | 8.0
731 | LD_RUNPATH_SEARCH_PATHS
732 |
733 | $(inherited)
734 | @executable_path/Frameworks
735 | @loader_path/Frameworks
736 |
737 | MODULEMAP_FILE
738 | Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.modulemap
739 | MTL_ENABLE_DEBUG_INFO
740 | YES
741 | OTHER_LDFLAGS
742 |
743 | OTHER_LIBTOOLFLAGS
744 |
745 | PODS_ROOT
746 | $(SRCROOT)
747 | PRODUCT_NAME
748 | Pods_LoadingImageView_Example
749 | SDKROOT
750 | iphoneos
751 | SKIP_INSTALL
752 | YES
753 | TARGETED_DEVICE_FAMILY
754 | 1,2
755 | VERSIONING_SYSTEM
756 | apple-generic
757 | VERSION_INFO_PREFIX
758 |
759 |
760 | isa
761 | XCBuildConfiguration
762 | name
763 | Debug
764 |
765 | B645C9F4B01DCBD256320BA1
766 |
767 | isa
768 | PBXFileReference
769 | lastKnownFileType
770 | wrapper.framework
771 | name
772 | UIKit.framework
773 | path
774 | Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/UIKit.framework
775 | sourceTree
776 | DEVELOPER_DIR
777 |
778 | BB4751B8F772E4FD5B4330EC
779 |
780 | buildConfigurations
781 |
782 | B0955F807F6722910A156DC8
783 | F82605413D41D9E38F55D190
784 |
785 | defaultConfigurationIsVisible
786 | 0
787 | defaultConfigurationName
788 | Release
789 | isa
790 | XCConfigurationList
791 |
792 | BCFC8944E20F95CC940A7CDF
793 |
794 | children
795 |
796 | 86ECCD49C9548AF1575E384C
797 |
798 | isa
799 | PBXGroup
800 | name
801 | Development Pods
802 | sourceTree
803 | <group>
804 |
805 | BD7DC84BCE67ED5BA53F4C79
806 |
807 | includeInIndex
808 | 1
809 | isa
810 | PBXFileReference
811 | lastKnownFileType
812 | text.xcconfig
813 | path
814 | Pods-LoadingImageView Example-LoadingImageView-Private.xcconfig
815 | sourceTree
816 | <group>
817 |
818 | C535328A597012FA05C2BCA9
819 |
820 | fileRef
821 | 2725CE92BF7854F0B4678E51
822 | isa
823 | PBXBuildFile
824 |
825 | CBF865614C2493E0BDE7835C
826 |
827 | explicitFileType
828 | wrapper.framework
829 | includeInIndex
830 | 0
831 | isa
832 | PBXFileReference
833 | name
834 | Pods_LoadingImageView_Example.framework
835 | path
836 | Pods_LoadingImageView_Example.framework
837 | sourceTree
838 | BUILT_PRODUCTS_DIR
839 |
840 | CF243DBD1CCA9EA83DCF1690
841 |
842 | buildSettings
843 |
844 | ALWAYS_SEARCH_USER_PATHS
845 | NO
846 | CLANG_CXX_LANGUAGE_STANDARD
847 | gnu++0x
848 | CLANG_CXX_LIBRARY
849 | libc++
850 | CLANG_ENABLE_MODULES
851 | YES
852 | CLANG_ENABLE_OBJC_ARC
853 | YES
854 | CLANG_WARN_BOOL_CONVERSION
855 | YES
856 | CLANG_WARN_CONSTANT_CONVERSION
857 | YES
858 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE
859 | YES
860 | CLANG_WARN_EMPTY_BODY
861 | YES
862 | CLANG_WARN_ENUM_CONVERSION
863 | YES
864 | CLANG_WARN_INT_CONVERSION
865 | YES
866 | CLANG_WARN_OBJC_ROOT_CLASS
867 | YES
868 | CLANG_WARN_UNREACHABLE_CODE
869 | YES
870 | CLANG_WARN__DUPLICATE_METHOD_MATCH
871 | YES
872 | COPY_PHASE_STRIP
873 | YES
874 | GCC_C_LANGUAGE_STANDARD
875 | gnu99
876 | GCC_DYNAMIC_NO_PIC
877 | NO
878 | GCC_OPTIMIZATION_LEVEL
879 | 0
880 | GCC_PREPROCESSOR_DEFINITIONS
881 |
882 | DEBUG=1
883 | $(inherited)
884 |
885 | GCC_SYMBOLS_PRIVATE_EXTERN
886 | NO
887 | GCC_WARN_64_TO_32_BIT_CONVERSION
888 | YES
889 | GCC_WARN_ABOUT_RETURN_TYPE
890 | YES
891 | GCC_WARN_UNDECLARED_SELECTOR
892 | YES
893 | GCC_WARN_UNINITIALIZED_AUTOS
894 | YES
895 | GCC_WARN_UNUSED_FUNCTION
896 | YES
897 | GCC_WARN_UNUSED_VARIABLE
898 | YES
899 | IPHONEOS_DEPLOYMENT_TARGET
900 | 8.0
901 | ONLY_ACTIVE_ARCH
902 | YES
903 | STRIP_INSTALLED_PRODUCT
904 | NO
905 |
906 | isa
907 | XCBuildConfiguration
908 | name
909 | Debug
910 |
911 | D6C14AA164B32EC199D5527B
912 |
913 | buildActionMask
914 | 2147483647
915 | files
916 |
917 | EEE44ACD34A691D2C402537F
918 |
919 | isa
920 | PBXHeadersBuildPhase
921 | runOnlyForDeploymentPostprocessing
922 | 0
923 |
924 | DC1D71E3C2F3F46FCA431441
925 |
926 | includeInIndex
927 | 1
928 | isa
929 | PBXFileReference
930 | lastKnownFileType
931 | text.xcconfig
932 | path
933 | Pods-LoadingImageView Example.release.xcconfig
934 | sourceTree
935 | <group>
936 |
937 | E0C05FE1AF707250D871EB1F
938 |
939 | baseConfigurationReference
940 | BD7DC84BCE67ED5BA53F4C79
941 | buildSettings
942 |
943 | CODE_SIGN_IDENTITY[sdk=iphoneos*]
944 | iPhone Developer
945 | CURRENT_PROJECT_VERSION
946 | 1
947 | DEFINES_MODULE
948 | YES
949 | DYLIB_COMPATIBILITY_VERSION
950 | 1
951 | DYLIB_CURRENT_VERSION
952 | 1
953 | DYLIB_INSTALL_NAME_BASE
954 | @rpath
955 | ENABLE_STRICT_OBJC_MSGSEND
956 | YES
957 | GCC_PREFIX_HEADER
958 | Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView-prefix.pch
959 | INFOPLIST_FILE
960 | Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Info.plist
961 | INSTALL_PATH
962 | $(LOCAL_LIBRARY_DIR)/Frameworks
963 | IPHONEOS_DEPLOYMENT_TARGET
964 | 8.0
965 | LD_RUNPATH_SEARCH_PATHS
966 |
967 | $(inherited)
968 | @executable_path/Frameworks
969 | @loader_path/Frameworks
970 |
971 | MODULEMAP_FILE
972 | Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView.modulemap
973 | MTL_ENABLE_DEBUG_INFO
974 | NO
975 | PRODUCT_NAME
976 | LoadingImageView
977 | SDKROOT
978 | iphoneos
979 | SKIP_INSTALL
980 | YES
981 | TARGETED_DEVICE_FAMILY
982 | 1,2
983 | VERSIONING_SYSTEM
984 | apple-generic
985 | VERSION_INFO_PREFIX
986 |
987 |
988 | isa
989 | XCBuildConfiguration
990 | name
991 | Release
992 |
993 | E186795543198F4F85D60A0A
994 |
995 | buildActionMask
996 | 2147483647
997 | files
998 |
999 | 610669DA8D32810FFBE53231
1000 | AC9B40FF275BF36C01C870F9
1001 |
1002 | isa
1003 | PBXFrameworksBuildPhase
1004 | runOnlyForDeploymentPostprocessing
1005 | 0
1006 |
1007 | E89E759046BCA2CEB7464CC0
1008 |
1009 | includeInIndex
1010 | 1
1011 | isa
1012 | PBXFileReference
1013 | path
1014 | Pods-LoadingImageView Example-LoadingImageView.modulemap
1015 | sourceTree
1016 | <group>
1017 |
1018 | EA1B8ACF2854D5874C8F6416
1019 |
1020 | children
1021 |
1022 | 0E937777F078160339D5062F
1023 | 589C84D0F9C153E2EF9227CF
1024 | 0818E6CDA8FE490466745A0B
1025 | 4B8E611AA3CBCB79E4650B04
1026 | 2974E3D07B320CD52C9CEB06
1027 | 6D1ACB8C96DAE39ABC47D9DD
1028 | 5A8517EE0A3A2547E6AF40F8
1029 | 350F0A137DB1414FED44D882
1030 | 041D3F0BAAACFE94E19B414F
1031 | 807FCBBAF08ACE7490104C8D
1032 | DC1D71E3C2F3F46FCA431441
1033 |
1034 | isa
1035 | PBXGroup
1036 | name
1037 | Pods-LoadingImageView Example
1038 | path
1039 | Target Support Files/Pods-LoadingImageView Example
1040 | sourceTree
1041 | <group>
1042 |
1043 | EC1869C32B3945A694CCDDBD
1044 |
1045 | children
1046 |
1047 | 2725CE92BF7854F0B4678E51
1048 | 24C2820841B2066AD27060AD
1049 |
1050 | isa
1051 | PBXGroup
1052 | name
1053 | Source
1054 | path
1055 | Source
1056 | sourceTree
1057 | <group>
1058 |
1059 | EEE44ACD34A691D2C402537F
1060 |
1061 | fileRef
1062 | 041D3F0BAAACFE94E19B414F
1063 | isa
1064 | PBXBuildFile
1065 | settings
1066 |
1067 | ATTRIBUTES
1068 |
1069 | Public
1070 |
1071 |
1072 |
1073 | F386243CCC2ACADE36B31AC1
1074 |
1075 | buildConfigurations
1076 |
1077 | CF243DBD1CCA9EA83DCF1690
1078 | 4F3BFA05FD93D7F81684DCCF
1079 |
1080 | defaultConfigurationIsVisible
1081 | 0
1082 | defaultConfigurationName
1083 | Release
1084 | isa
1085 | XCConfigurationList
1086 |
1087 | F82605413D41D9E38F55D190
1088 |
1089 | baseConfigurationReference
1090 | DC1D71E3C2F3F46FCA431441
1091 | buildSettings
1092 |
1093 | CODE_SIGN_IDENTITY[sdk=iphoneos*]
1094 | iPhone Developer
1095 | CURRENT_PROJECT_VERSION
1096 | 1
1097 | DEFINES_MODULE
1098 | YES
1099 | DYLIB_COMPATIBILITY_VERSION
1100 | 1
1101 | DYLIB_CURRENT_VERSION
1102 | 1
1103 | DYLIB_INSTALL_NAME_BASE
1104 | @rpath
1105 | ENABLE_STRICT_OBJC_MSGSEND
1106 | YES
1107 | INFOPLIST_FILE
1108 | Target Support Files/Pods-LoadingImageView Example/Info.plist
1109 | INSTALL_PATH
1110 | $(LOCAL_LIBRARY_DIR)/Frameworks
1111 | IPHONEOS_DEPLOYMENT_TARGET
1112 | 8.0
1113 | LD_RUNPATH_SEARCH_PATHS
1114 |
1115 | $(inherited)
1116 | @executable_path/Frameworks
1117 | @loader_path/Frameworks
1118 |
1119 | MODULEMAP_FILE
1120 | Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.modulemap
1121 | MTL_ENABLE_DEBUG_INFO
1122 | NO
1123 | OTHER_LDFLAGS
1124 |
1125 | OTHER_LIBTOOLFLAGS
1126 |
1127 | PODS_ROOT
1128 | $(SRCROOT)
1129 | PRODUCT_NAME
1130 | Pods_LoadingImageView_Example
1131 | SDKROOT
1132 | iphoneos
1133 | SKIP_INSTALL
1134 | YES
1135 | TARGETED_DEVICE_FAMILY
1136 | 1,2
1137 | VERSIONING_SYSTEM
1138 | apple-generic
1139 | VERSION_INFO_PREFIX
1140 |
1141 |
1142 | isa
1143 | XCBuildConfiguration
1144 | name
1145 | Release
1146 |
1147 | FA726866A79F6D05E5CC6CBC
1148 |
1149 | includeInIndex
1150 | 1
1151 | isa
1152 | PBXFileReference
1153 | lastKnownFileType
1154 | sourcecode.c.objc
1155 | path
1156 | Pods-LoadingImageView Example-LoadingImageView-dummy.m
1157 | sourceTree
1158 | <group>
1159 |
1160 | FB4256E781D4B3F5CF42027A
1161 |
1162 | children
1163 |
1164 | 2BA17FD8813DDAA7E3E3033D
1165 |
1166 | isa
1167 | PBXGroup
1168 | name
1169 | Frameworks
1170 | sourceTree
1171 | <group>
1172 |
1173 | FDDEBC422B400D500EE745E9
1174 |
1175 | isa
1176 | PBXTargetDependency
1177 | name
1178 | Pods-LoadingImageView Example-LoadingImageView
1179 | target
1180 | ADF6A21E721B1E942B1E23A3
1181 | targetProxy
1182 | 5C6818B9DC84352DC9D53559
1183 |
1184 |
1185 | rootObject
1186 | A0FB8DEFAF6EDDCEA89C5B3D
1187 |
1188 |
1189 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 0.1.2
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-LoadingImageView Example-LoadingImageView.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/LoadingImageView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/LoadingImageView"
6 | OTHER_LDFLAGS = ${PODS_LOADINGIMAGEVIEW_EXAMPLE_LOADINGIMAGEVIEW_OTHER_LDFLAGS} -ObjC
7 | OTHER_SWIFT_FLAGS = "-D COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LoadingImageView Example
9 | PODS_ROOT = ${SRCROOT}
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_LoadingImageView_Example_LoadingImageView : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_LoadingImageView_Example_LoadingImageView
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-LoadingImageView Example-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double LoadingImageViewVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char LoadingImageViewVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView.modulemap:
--------------------------------------------------------------------------------
1 | framework module LoadingImageView {
2 | umbrella header "Pods-LoadingImageView Example-LoadingImageView-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example-LoadingImageView/Pods-LoadingImageView Example-LoadingImageView.xcconfig:
--------------------------------------------------------------------------------
1 | PODS_LOADINGIMAGEVIEW_EXAMPLE_LOADINGIMAGEVIEW_OTHER_LDFLAGS = -framework "UIKit"
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-acknowledgements.markdown:
--------------------------------------------------------------------------------
1 | # Acknowledgements
2 | This application makes use of the following third party libraries:
3 |
4 | ## LoadingImageView
5 |
6 | Copyright (c) 2015 Cezar Cocu
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy
9 | of this software and associated documentation files (the "Software"), to deal
10 | in the Software without restriction, including without limitation the rights
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | copies of the Software, and to permit persons to whom the Software is
13 | furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in
16 | all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | THE SOFTWARE.
25 |
26 | Generated by CocoaPods - http://cocoapods.org
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-acknowledgements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreferenceSpecifiers
6 |
7 |
8 | FooterText
9 | This application makes use of the following third party libraries:
10 | Title
11 | Acknowledgements
12 | Type
13 | PSGroupSpecifier
14 |
15 |
16 | FooterText
17 | Copyright (c) 2015 Cezar Cocu
18 |
19 | Permission is hereby granted, free of charge, to any person obtaining a copy
20 | of this software and associated documentation files (the "Software"), to deal
21 | in the Software without restriction, including without limitation the rights
22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23 | copies of the Software, and to permit persons to whom the Software is
24 | furnished to do so, subject to the following conditions:
25 |
26 | The above copyright notice and this permission notice shall be included in
27 | all copies or substantial portions of the Software.
28 |
29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
35 | THE SOFTWARE.
36 |
37 | Title
38 | LoadingImageView
39 | Type
40 | PSGroupSpecifier
41 |
42 |
43 | FooterText
44 | Generated by CocoaPods - http://cocoapods.org
45 | Title
46 |
47 | Type
48 | PSGroupSpecifier
49 |
50 |
51 | StringsTable
52 | Acknowledgements
53 | Title
54 | Acknowledgements
55 |
56 |
57 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_LoadingImageView_Example : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_LoadingImageView_Example
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-environment.h:
--------------------------------------------------------------------------------
1 |
2 | // To check if a library is compiled with CocoaPods you
3 | // can use the `COCOAPODS` macro definition which is
4 | // defined in the xcconfigs so it is available in
5 | // headers also when they are imported in the client
6 | // project.
7 |
8 |
9 | // LoadingImageView
10 | #define COCOAPODS_POD_AVAILABLE_LoadingImageView
11 | #define COCOAPODS_VERSION_MAJOR_LoadingImageView 0
12 | #define COCOAPODS_VERSION_MINOR_LoadingImageView 1
13 | #define COCOAPODS_VERSION_PATCH_LoadingImageView 2
14 |
15 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-frameworks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 |
4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
6 |
7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
8 |
9 | install_framework()
10 | {
11 | local source="${BUILT_PRODUCTS_DIR}/Pods-LoadingImageView Example/$1"
12 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
13 |
14 | if [ -L ${source} ]; then
15 | echo "Symlinked..."
16 | source=$(readlink "${source}")
17 | fi
18 |
19 | # use filter instead of exclude so missing patterns dont' throw errors
20 | echo "rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" ${source} ${destination}"
21 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" "${source}" "${destination}"
22 | # Resign the code if required by the build settings to avoid unstable apps
23 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
24 | code_sign "${destination}/$1"
25 | fi
26 |
27 | # Embed linked Swift runtime libraries
28 | local basename
29 | basename=$(echo $1 | sed -E s/\\..+// && exit ${PIPESTATUS[0]})
30 | local swift_runtime_libs
31 | swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/$1/${basename}" | grep @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
32 | for lib in $swift_runtime_libs; do
33 | echo "rsync -av \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
34 | rsync -av "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
35 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
36 | code_sign "${destination}/${lib}"
37 | fi
38 | done
39 | }
40 |
41 | # Signs a framework with the provided identity
42 | code_sign() {
43 | # Use the current code_sign_identitiy
44 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
45 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1"
46 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
47 | }
48 |
49 |
50 | if [[ "$CONFIGURATION" == "Debug" ]]; then
51 | install_framework 'LoadingImageView.framework'
52 | fi
53 | if [[ "$CONFIGURATION" == "Release" ]]; then
54 | install_framework 'LoadingImageView.framework'
55 | fi
56 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-resources.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 |
4 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
5 |
6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
7 | > "$RESOURCES_TO_COPY"
8 |
9 | install_resource()
10 | {
11 | case $1 in
12 | *.storyboard)
13 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
14 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
15 | ;;
16 | *.xib)
17 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
18 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
19 | ;;
20 | *.framework)
21 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
22 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
23 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
24 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
25 | ;;
26 | *.xcdatamodel)
27 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\""
28 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom"
29 | ;;
30 | *.xcdatamodeld)
31 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\""
32 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd"
33 | ;;
34 | *.xcmappingmodel)
35 | echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\""
36 | xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm"
37 | ;;
38 | *.xcassets)
39 | ;;
40 | /*)
41 | echo "$1"
42 | echo "$1" >> "$RESOURCES_TO_COPY"
43 | ;;
44 | *)
45 | echo "${PODS_ROOT}/$1"
46 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY"
47 | ;;
48 | esac
49 | }
50 |
51 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
52 | if [[ "${ACTION}" == "install" ]]; then
53 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
54 | fi
55 | rm -f "$RESOURCES_TO_COPY"
56 |
57 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ]
58 | then
59 | case "${TARGETED_DEVICE_FAMILY}" in
60 | 1,2)
61 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
62 | ;;
63 | 1)
64 | TARGET_DEVICE_ARGS="--target-device iphone"
65 | ;;
66 | 2)
67 | TARGET_DEVICE_ARGS="--target-device ipad"
68 | ;;
69 | *)
70 | TARGET_DEVICE_ARGS="--target-device mac"
71 | ;;
72 | esac
73 | find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
74 | fi
75 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double Pods_LoadingImageView_ExampleVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char Pods_LoadingImageView_ExampleVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.debug.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/LoadingImageView.framework/Headers"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "LoadingImageView"
6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
7 | OTHER_SWIFT_FLAGS = "-D COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LoadingImageView Example
9 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_LoadingImageView_Example {
2 | umbrella header "Pods-LoadingImageView Example-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-LoadingImageView Example/Pods-LoadingImageView Example.release.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/LoadingImageView.framework/Headers"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "LoadingImageView"
6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
7 | OTHER_SWIFT_FLAGS = "-D COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LoadingImageView Example
9 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | LoadingImageView
2 | ================
3 |
4 | Loading Indicator for UIImageView written in Swift.
5 |
6 | - [x] Simple to use
7 | - [x] Handles network calls and background image decoding.
8 | - [x] Background decoding of Images
9 | - [x] Handles Error states and retrying download.
10 | - [ ] Handles offline caching. Coming soon.
11 |
12 | 
13 |
14 | ###Cocoapod
15 |
16 | ``` ruby
17 | pod 'LoadingImageView'
18 |
19 | ```
20 |
21 | ###USAGE
22 |
23 | As simple as
24 | ``` swift
25 | import LoadingImageView
26 |
27 | let imageView = LoadingImageView()
28 | view.addSubview(imageView)
29 | let imageURL = NSURL(string: "https://catfishes.files.wordpress.com/2013/03/cat-breaded.jpg")
30 | imageView.downloadImage(imageURL, placeholder: nil)
31 | ```
32 | ####API
33 | ``` swift
34 | var state: LoadingImageState
35 | weak var delegate: LoadingImageViewDelegate?
36 | var inset: Float
37 | var lineWidth: Float
38 | var lineColor: UIColor
39 | var reloadImage: UIImage
40 |
41 | func downloadImage(URL: NSURL, placeholder:UIImage?)->NSURLSessionDownloadTask
42 | ```
43 |
44 | ####Delegate and State
45 | ``` swift
46 | enum LoadingImageState {
47 | case Idle
48 | case Downloading(NSURLSessionDownloadTask)
49 | case Errored(NSURLSessionDownloadTask, NSError)
50 | }
51 |
52 | protocol LoadingImageViewDelegate : NSObjectProtocol {
53 | func loadingImageViewStateChanged(imageView: LoadingImageView, state: LoadingImageState)
54 | func shouldAttemptRetry(imageView: LoadingImageView)->Bool
55 | func imageForReloadState(imageView: LoadingImageView)->UIImage
56 | }
57 | ```
58 | ####Storyboard, Support for IBInspectable
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/Screenshots/IBInspectableSupport.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cezarc1/LoadingImageView/9f8ff2da26925a0eb81e28d8f93144a0d650b5e5/Screenshots/IBInspectableSupport.jpg
--------------------------------------------------------------------------------
/Screenshots/LoadingImageShowcase.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cezarc1/LoadingImageView/9f8ff2da26925a0eb81e28d8f93144a0d650b5e5/Screenshots/LoadingImageShowcase.gif
--------------------------------------------------------------------------------
/Source/BezierPath.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BezierPath.swift
3 | // LoadingImageView
4 | //
5 | // Created by Cezar Cocu on 1/2/15.
6 | // Copyright (c) 2015 Cezar Cocu. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UIBezierPath {
12 |
13 | convenience init(semiCircleInRect rect: CGRect, inset: CGFloat) {
14 | self.init()
15 | let center = CGPointMake(CGRectGetWidth(rect) / CGFloat(2.0),
16 | CGRectGetHeight(rect) / CGFloat(2.0))
17 | let minSize = min(CGRectGetWidth(rect), CGRectGetHeight(rect))
18 | let radius = minSize / CGFloat(2.0) - inset
19 | let PI2 = CGFloat(2.0 * M_PI)
20 | self.addArcWithCenter(center, radius: radius, startAngle: CGFloat(0.0), endAngle: PI2, clockwise: true)
21 | }
22 | }
--------------------------------------------------------------------------------
/Source/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | com.alamofire.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Source/LoadingImageView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LoadingImageView.swift
3 | // LoadingImageView
4 | //
5 | // Created by Cezar Cocu on 1/2/15.
6 | // Copyright (c) 2015 Cezar Cocu. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import QuartzCore
11 |
12 | public enum LoadingImageState {
13 | case Idle
14 | case Downloading(NSURLSessionDownloadTask)
15 | case Errored(NSURLSessionDownloadTask, NSError)
16 | }
17 |
18 | public final class LoadingImageView : UIView, NSURLSessionDownloadDelegate {
19 |
20 | public var state: LoadingImageState = .Idle {
21 | didSet {
22 | updateUI()
23 | delegate?.loadingImageViewStateChanged(self, state: self.state)
24 |
25 | switch state {
26 | case .Downloading(_):
27 | reloadImageView.removeFromSuperview()
28 | if let link = displayLink {
29 | link.paused = false
30 | link.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
31 | }
32 | case .Errored(_, _):
33 | if let link = displayLink {
34 | link.paused = true
35 | }
36 | progressLayer.hidden = true
37 | addSubview(reloadImageView)
38 | if let image = delegate?.imageForReloadState(self) {
39 | reloadImage = image
40 | }
41 | case .Idle:
42 | reloadImageView.removeFromSuperview()
43 | if let link = displayLink {
44 | link.paused = true
45 | }
46 | }
47 | }
48 | }
49 |
50 | public weak var delegate: LoadingImageViewDelegate?
51 |
52 | public var operationQueue : NSOperationQueue = LoadingImageView.operationQueue
53 |
54 | public let imageView: UIImageView = UIImageView()
55 |
56 | public var tapGestureRecognizer: UITapGestureRecognizer {
57 | return UITapGestureRecognizer(target: self, action: "tapOccured:")
58 | }
59 |
60 | @IBInspectable public var inset: Float = 10.0
61 |
62 | @IBInspectable public var lineWidth: Float = 10.0
63 |
64 | @IBInspectable public var lineColor: UIColor = UIColor.grayColor()
65 |
66 | @IBInspectable public var reloadImage: UIImage = UIImage() {
67 | didSet {
68 | self.reloadImageView.image = reloadImage
69 | }
70 | }
71 |
72 | public var progress: Float = 0.0
73 |
74 | private lazy var progressLayer: CAShapeLayer = {
75 | let shape = CAShapeLayer()
76 | shape.strokeStart = CGFloat(0.0)
77 | shape.strokeEnd = CGFloat(0.0)
78 | shape.fillColor = UIColor.clearColor().CGColor
79 | return shape
80 | }()
81 |
82 | private lazy var reloadImageView: UIImageView = {
83 | let image = UIImageView()
84 | image.contentMode = .ScaleAspectFit
85 | return image
86 | }()
87 |
88 | private lazy var displayLink: CADisplayLink? = {
89 | #if !TARGET_INTERFACE_BUILDER
90 | let link = CADisplayLink(target: self, selector: "updateUI")
91 | link.frameInterval = 30 // twice every second
92 | return link
93 | #else
94 | return nil
95 | #endif
96 | }()
97 |
98 |
99 | private class var operationQueue : NSOperationQueue {
100 | struct Static {
101 | static let instance : NSOperationQueue = {
102 | let queue = NSOperationQueue()
103 | queue.qualityOfService = .UserInitiated
104 | queue.name = "LoadingImageViewQueue"
105 | return queue
106 | }()
107 | }
108 | return Static.instance
109 | }
110 |
111 | public override init(frame: CGRect) {
112 | super.init(frame: frame)
113 | self.commonInit()
114 | }
115 |
116 | required public init(coder aDecoder: NSCoder) {
117 | super.init(coder: aDecoder)
118 | self.commonInit()
119 | }
120 |
121 | private func commonInit() {
122 | #if TARGET_INTERFACE_BUILDER
123 | backgroundColor = UIColor.redColor()
124 | #else
125 | clipsToBounds = true
126 | backgroundColor = UIColor.whiteColor()
127 | addGestureRecognizer(tapGestureRecognizer)
128 |
129 | addSubview(imageView)
130 | imageView.contentMode = contentMode
131 | layer.addSublayer(progressLayer)
132 | #endif
133 | }
134 |
135 | //MARK: AutoLayout
136 |
137 | public override func intrinsicContentSize()->CGSize {
138 | return imageView.intrinsicContentSize()
139 | }
140 |
141 | //MARK: Lifecycle
142 | public override func layoutSubviews() {
143 | super.layoutSubviews()
144 |
145 | imageView.frame = bounds
146 | reloadImageView.frame = bounds
147 | }
148 |
149 | override public func didMoveToSuperview() {
150 | super.didMoveToSuperview()
151 |
152 | if let view = superview {
153 | if let link = displayLink {
154 | link.paused = false
155 |
156 | }
157 | } else {
158 | if let link = displayLink {
159 | link.paused = true
160 | }
161 | }
162 | }
163 |
164 | //MARK: UI Sync
165 | func updateUI() {
166 | dispatch_async(dispatch_get_main_queue()) {
167 | self.updateProgressLayer(forState: self.state, progress: self.progress)
168 |
169 | println("\(self.progress * 100)%")
170 | }
171 | }
172 |
173 | func updateProgressLayer(forState state: LoadingImageState, progress: Float) {
174 | switch state {
175 | case .Downloading(_):
176 | progressLayer.hidden = false
177 | progressLayer.path = UIBezierPath(semiCircleInRect: bounds, inset: CGFloat(inset)).CGPath
178 | progressLayer.strokeColor = lineColor.CGColor
179 | progressLayer.lineWidth = CGFloat(lineWidth)
180 | progressLayer.strokeEnd = max(CGFloat(progress), CGFloat(0.05))
181 | default:
182 | break
183 | }
184 | }
185 |
186 | //MARK: Network Calls
187 | public func downloadImage(URL: NSURL, placeholder:UIImage?)->NSURLSessionDownloadTask {
188 | let config = NSURLSessionConfiguration.defaultSessionConfiguration()
189 | var session = NSURLSession(configuration: config, delegate: self, delegateQueue: NSOperationQueue())
190 | return downloadImage(URL, placeholder: placeholder, session: session)
191 | }
192 |
193 | public func downloadImage(URL: NSURL, placeholder:UIImage?, session: NSURLSession)->NSURLSessionDownloadTask {
194 | switch state {
195 | case .Downloading(let task):
196 | task.cancel()
197 | default:
198 | break
199 | }
200 |
201 | self.imageView.image = placeholder ?? nil
202 | let request = NSMutableURLRequest(URL: URL)
203 | request.timeoutInterval = 20.0
204 | let downloadTask = session.downloadTaskWithRequest(request)
205 | progress = 0.0
206 | state = .Downloading(downloadTask)
207 | downloadTask.resume()
208 | return downloadTask
209 | }
210 |
211 | //MARK: - Actions
212 |
213 | func tapOccured(sender: AnyObject) {
214 | switch state {
215 | case .Errored(let task, _):
216 | let maybeAttemptReload = delegate?.shouldAttemptRetry(self)
217 | if let attemptReload = maybeAttemptReload {
218 | if attemptReload {
219 | self.downloadImage(task.originalRequest.URL!, placeholder: nil)
220 | }
221 | } else {
222 | self.downloadImage(task.originalRequest.URL!, placeholder: nil)
223 | }
224 | fallthrough
225 | default:
226 | #if DEBUG
227 | println("tap occured")
228 | #endif
229 | break
230 | }
231 | }
232 |
233 | deinit {
234 | if let link = displayLink {
235 | link.invalidate()
236 | }
237 | }
238 | }
239 |
240 | extension LoadingImageView : NSURLSessionDownloadDelegate {
241 |
242 | public func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) {
243 | dispatch_async(dispatch_get_main_queue()) {
244 | if let err = error {
245 | println("error: \(err)")
246 | self.state = .Errored(task as! NSURLSessionDownloadTask, err)
247 | } else {
248 | self.progress = 1.0
249 | self.state = .Idle
250 | }
251 | }
252 | }
253 |
254 | public func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) {
255 | if let image = UIImage.decompressedImage(location) {
256 | dispatch_async(dispatch_get_main_queue()) {
257 | if downloadTask.state == .Canceling {
258 | return
259 | }
260 | let delay = 0.20
261 | let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC)))
262 | dispatch_after(delayTime, dispatch_get_main_queue()) {
263 | self.progressLayer.hidden = true
264 | self.imageView.image = image
265 | self.invalidateIntrinsicContentSize()
266 | let fadeInAnimation = CABasicAnimation(keyPath: "opacity")
267 | fadeInAnimation.fromValue = 0.0
268 | fadeInAnimation.toValue = self.imageView.layer.opacity
269 | fadeInAnimation.duration = delay
270 | self.imageView.layer.addAnimation(fadeInAnimation, forKey: "fadeIn")
271 | }
272 | self.updateProgressLayer(forState: self.state, progress: 1.0)
273 |
274 | }
275 | } else {
276 | dispatch_async(dispatch_get_main_queue()) {
277 | let err = NSError(domain: "Invalid Image", code: 400, userInfo: nil)
278 | self.state = .Errored(downloadTask, err)
279 | }
280 | }
281 | }
282 |
283 | public func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
284 | dispatch_async(dispatch_get_main_queue()) {
285 | let progress:Float = Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)
286 | self.progress = progress
287 | }
288 | }
289 | }
290 |
291 | public protocol LoadingImageViewDelegate : NSObjectProtocol {
292 | func loadingImageViewStateChanged(imageView: LoadingImageView, state: LoadingImageState)
293 | func shouldAttemptRetry(imageView: LoadingImageView)->Bool
294 | func imageForReloadState(imageView: LoadingImageView)->UIImage
295 | }
296 |
297 | extension UIImage {
298 |
299 | class func decompressedImage(imageURL: NSURL)->UIImage? {
300 | if let data = NSData(contentsOfURL: imageURL) {
301 | if let image = UIImage(data: data) {
302 | UIGraphicsBeginImageContext(image.size)
303 | image.drawAtPoint(CGPointZero)
304 | let decompressedImage = UIGraphicsGetImageFromCurrentImageContext();
305 | UIGraphicsEndImageContext();
306 | return decompressedImage
307 | }
308 | }
309 | return nil
310 | }
311 | }
--------------------------------------------------------------------------------