├── .gitignore
├── Example
├── Example
│ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ ├── ExampleViewController.xib
│ │ └── MainWindow.xib
│ ├── shuttle.png
│ ├── Example-Prefix.pch
│ ├── ExampleViewController.h
│ ├── main.m
│ ├── ExampleAppDelegate.h
│ ├── ExampleViewController.m
│ ├── Example-Info.plist
│ └── ExampleAppDelegate.m
└── Example.xcodeproj
│ ├── project.xcworkspace
│ └── contents.xcworkspacedata
│ └── project.pbxproj
├── ImageSpinner.h
├── README
├── MIT-LICENSE
└── ImageSpinner.m
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | *.xcuserdatad
3 |
4 |
--------------------------------------------------------------------------------
/Example/Example/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Example/Example/shuttle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemonCake/ImageSpinner/HEAD/Example/Example/shuttle.png
--------------------------------------------------------------------------------
/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ImageSpinner.h:
--------------------------------------------------------------------------------
1 | //
2 | // SyncActivityIndicator.h
3 | // Miso
4 | //
5 | // Created by Joshua Wu on 7/13/11.
6 | // Copyright 2011 GoMiso, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface ImageSpinner : UIImageView {
13 | BOOL _animate;
14 | double _rotationAngle;
15 | }
16 | - (void)startAnimating;
17 | - (void)stopAnimating;
18 | @end
19 |
--------------------------------------------------------------------------------
/Example/Example/Example-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Example' target in the 'Example' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/Example/Example/ExampleViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ExampleViewController.h
3 | // Example
4 | //
5 | // Created by Aaron Brethorst on 7/21/11.
6 | // Copyright 2011 Structlab LLC. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ImageSpinner.h"
11 |
12 | @interface ExampleViewController : UIViewController
13 | @property(nonatomic,retain) IBOutlet ImageSpinner *spinner;
14 | @end
15 |
--------------------------------------------------------------------------------
/Example/Example/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Example
4 | //
5 | // Created by Aaron Brethorst on 7/21/11.
6 | // Copyright 2011 Structlab LLC. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | [pool release];
16 | return retVal;
17 | }
18 |
--------------------------------------------------------------------------------
/Example/Example/ExampleAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ExampleAppDelegate.h
3 | // Example
4 | //
5 | // Created by Aaron Brethorst on 7/21/11.
6 | // Copyright 2011 Structlab LLC. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ExampleViewController;
12 |
13 | @interface ExampleAppDelegate : NSObject
14 |
15 | @property (nonatomic, retain) IBOutlet UIWindow *window;
16 |
17 | @property (nonatomic, retain) IBOutlet ExampleViewController *viewController;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 | Simple class that let's you assign an image and spin it 360deg endlessly
2 |
3 | eg.
4 |
5 | // initialization
6 | ImageSpinner *spinner = [[ImageSpinner alloc] initWithImage:[UIImage imageNamed:@"example.png"]];
7 |
8 | // Animation methods
9 | [spinner startAnimation];
10 | [spinner stopAnimation];
11 |
12 | // Set another image
13 | [spinner setImage:[UIImage imageNamed:@"example2.png"];
14 |
15 | Note: The image will continue spinning to it's original position even when you call stop animation.
16 |
17 | Space shuttle image from The Noun Project (http://thenounproject.com/). Licensed under Creative Commons Attribution.
--------------------------------------------------------------------------------
/Example/Example/ExampleViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ExampleViewController.m
3 | // Example
4 | //
5 | // Created by Aaron Brethorst on 7/21/11.
6 | // Copyright 2011 Structlab LLC. All rights reserved.
7 | //
8 |
9 | #import "ExampleViewController.h"
10 |
11 | @implementation ExampleViewController
12 | @synthesize spinner;
13 |
14 | - (void)didReceiveMemoryWarning
15 | {
16 | // Releases the view if it doesn't have a superview.
17 | [super didReceiveMemoryWarning];
18 |
19 | // Release any cached data, images, etc that aren't in use.
20 | }
21 |
22 | #pragma mark - View lifecycle
23 |
24 | - (void)viewDidLoad {
25 | [super viewDidLoad];
26 | [self.spinner startAnimating];
27 | }
28 |
29 | - (void)viewDidUnload
30 | {
31 | [super viewDidUnload];
32 | self.spinner = nil;
33 | }
34 |
35 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
36 | {
37 | // Return YES for supported orientations
38 | return (interfaceOrientation == UIInterfaceOrientationPortrait);
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/MIT-LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2012 Joshua Wu
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5 |
6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9 |
--------------------------------------------------------------------------------
/Example/Example/Example-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | com.structlab.${PRODUCT_NAME:rfc1034identifier}
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleShortVersionString
22 | 1.0
23 | CFBundleSignature
24 | ????
25 | CFBundleVersion
26 | 1.0
27 | LSRequiresIPhoneOS
28 |
29 | NSMainNibFile
30 | MainWindow
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/ImageSpinner.m:
--------------------------------------------------------------------------------
1 | //
2 | // SyncActivityIndicator.m
3 | // Miso
4 | //
5 | // Created by Joshua Wu on 7/13/11.
6 | // Copyright 2011 GoMiso, Inc. All rights reserved.
7 | //
8 |
9 | #import "ImageSpinner.h"
10 |
11 | @interface ImageSpinner ()
12 | - (void)configure;
13 | - (void)repeatAnimation;
14 | @end
15 |
16 | @implementation ImageSpinner
17 |
18 | - (id)initWithImage:(UIImage *)image {
19 | if ((self = [super initWithImage:image])) {
20 | [self configure];
21 | }
22 |
23 | return self;
24 | }
25 |
26 | - (id)initWithCoder:(NSCoder *)aDecoder {
27 | if ((self = [super initWithCoder:aDecoder])) {
28 | [self configure];
29 | }
30 | return self;
31 | }
32 |
33 | - (void)configure {
34 | _rotationAngle = 0;
35 | self.userInteractionEnabled = NO;
36 | }
37 |
38 | - (void)startAnimating {
39 | if(_animate || _rotationAngle != 0) {
40 | return;
41 | }
42 |
43 | _animate = YES;
44 | [self repeatAnimation];
45 | }
46 |
47 | - (void)repeatAnimation {
48 | _rotationAngle += M_PI / 2.f;
49 |
50 | if(_rotationAngle == 2.f * M_PI) {
51 | _rotationAngle = 0.f;
52 | }
53 |
54 | if (_animate || _rotationAngle != M_PI / 2.f) {
55 | [UIView beginAnimations:nil context:nil];
56 | [UIView setAnimationDuration:0.25];
57 | [UIView setAnimationDelegate:self];
58 | [UIView setAnimationCurve:UIViewAnimationCurveLinear];
59 | [UIView setAnimationDidStopSelector:@selector(repeatAnimation)];
60 | self.transform = CGAffineTransformMakeRotation(_rotationAngle);
61 | [UIView commitAnimations];
62 | } else {
63 | _rotationAngle = 0.f;
64 | }
65 | }
66 |
67 | - (BOOL)isAnimating {
68 | return _animate;
69 | }
70 |
71 | - (void)stopAnimating {
72 | _animate = NO;
73 | }
74 |
75 | @end
--------------------------------------------------------------------------------
/Example/Example/ExampleAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // ExampleAppDelegate.m
3 | // Example
4 | //
5 | // Created by Aaron Brethorst on 7/21/11.
6 | // Copyright 2011 Structlab LLC. All rights reserved.
7 | //
8 |
9 | #import "ExampleAppDelegate.h"
10 |
11 | #import "ExampleViewController.h"
12 |
13 | @implementation ExampleAppDelegate
14 |
15 | @synthesize window = _window;
16 | @synthesize viewController = _viewController;
17 |
18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
19 | {
20 | // Override point for customization after application launch.
21 |
22 | self.window.rootViewController = self.viewController;
23 | [self.window makeKeyAndVisible];
24 | return YES;
25 | }
26 |
27 | - (void)applicationWillResignActive:(UIApplication *)application
28 | {
29 | /*
30 | 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.
31 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
32 | */
33 | }
34 |
35 | - (void)applicationDidEnterBackground:(UIApplication *)application
36 | {
37 | /*
38 | 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.
39 | If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
40 | */
41 | }
42 |
43 | - (void)applicationWillEnterForeground:(UIApplication *)application
44 | {
45 | /*
46 | Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
47 | */
48 | }
49 |
50 | - (void)applicationDidBecomeActive:(UIApplication *)application
51 | {
52 | /*
53 | 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.
54 | */
55 | }
56 |
57 | - (void)applicationWillTerminate:(UIApplication *)application
58 | {
59 | /*
60 | Called when the application is about to terminate.
61 | Save data if appropriate.
62 | See also applicationDidEnterBackground:.
63 | */
64 | }
65 |
66 | - (void)dealloc
67 | {
68 | [_window release];
69 | [_viewController release];
70 | [super dealloc];
71 | }
72 |
73 | @end
74 |
--------------------------------------------------------------------------------
/Example/Example/en.lproj/ExampleViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 11A511
6 | 1617
7 | 1138
8 | 566.00
9 |
13 |
19 |
23 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 |
42 | 274
43 |
44 | YES
45 |
46 |
47 | 274
48 | {{110, 180}, {100, 100}}
49 |
50 |
51 |
52 | _NS:541
53 | NO
54 | IBCocoaTouchFramework
55 |
56 | NSImage
57 | shuttle.png
58 |
59 |
60 |
61 | {{0, 20}, {320, 460}}
62 |
63 |
64 |
65 |
66 | 3
67 | MC43NQA
68 |
69 | 2
70 |
71 |
72 | NO
73 |
74 | IBCocoaTouchFramework
75 |
76 |
77 |
78 |
79 | YES
80 |
81 |
82 | view
83 |
84 |
85 |
86 | 7
87 |
88 |
89 |
90 | spinner
91 |
92 |
93 |
94 | 10
95 |
96 |
97 |
98 |
99 | YES
100 |
101 | 0
102 |
103 |
104 |
105 |
106 |
107 | -1
108 |
109 |
110 | File's Owner
111 |
112 |
113 | -2
114 |
115 |
116 |
117 |
118 | 6
119 |
120 |
121 | YES
122 |
123 |
124 |
125 |
126 |
127 | 9
128 |
129 |
130 |
131 |
132 |
133 |
134 | YES
135 |
136 | YES
137 | -1.CustomClassName
138 | -1.IBPluginDependency
139 | -2.CustomClassName
140 | -2.IBPluginDependency
141 | 6.IBPluginDependency
142 | 9.CustomClassName
143 | 9.IBPluginDependency
144 |
145 |
146 | YES
147 | ExampleViewController
148 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
149 | UIResponder
150 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
151 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
152 | ImageSpinner
153 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
154 |
155 |
156 |
157 | YES
158 |
159 |
160 |
161 |
162 |
163 | YES
164 |
165 |
166 |
167 |
168 | 10
169 |
170 |
171 |
172 | YES
173 |
174 | ExampleViewController
175 | UIViewController
176 |
177 | spinner
178 | ImageSpinner
179 |
180 |
181 | spinner
182 |
183 | spinner
184 | ImageSpinner
185 |
186 |
187 |
188 | IBProjectSource
189 | ./Classes/ExampleViewController.h
190 |
191 |
192 |
193 | ImageSpinner
194 | UIImageView
195 |
196 | IBProjectSource
197 | ./Classes/ImageSpinner.h
198 |
199 |
200 |
201 |
202 | 0
203 | IBCocoaTouchFramework
204 |
205 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
206 |
207 |
208 | YES
209 | 3
210 |
211 | shuttle.png
212 | {100, 100}
213 |
214 | 534
215 |
216 |
217 |
--------------------------------------------------------------------------------
/Example/Example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 93AFA6B013D8AA88005EE725 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93AFA6AF13D8AA88005EE725 /* UIKit.framework */; };
11 | 93AFA6B213D8AA88005EE725 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93AFA6B113D8AA88005EE725 /* Foundation.framework */; };
12 | 93AFA6B413D8AA88005EE725 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93AFA6B313D8AA88005EE725 /* CoreGraphics.framework */; };
13 | 93AFA6BA13D8AA88005EE725 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 93AFA6B813D8AA88005EE725 /* InfoPlist.strings */; };
14 | 93AFA6BC13D8AA88005EE725 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 93AFA6BB13D8AA88005EE725 /* main.m */; };
15 | 93AFA6C013D8AA88005EE725 /* ExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 93AFA6BF13D8AA88005EE725 /* ExampleAppDelegate.m */; };
16 | 93AFA6C313D8AA88005EE725 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93AFA6C113D8AA88005EE725 /* MainWindow.xib */; };
17 | 93AFA6C613D8AA88005EE725 /* ExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93AFA6C513D8AA88005EE725 /* ExampleViewController.m */; };
18 | 93AFA6C913D8AA88005EE725 /* ExampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93AFA6C713D8AA88005EE725 /* ExampleViewController.xib */; };
19 | 93AFA6D013D8AB9C005EE725 /* shuttle.png in Resources */ = {isa = PBXBuildFile; fileRef = 93AFA6CF13D8AB9C005EE725 /* shuttle.png */; };
20 | 93AFA6D313D8ABA6005EE725 /* ImageSpinner.m in Sources */ = {isa = PBXBuildFile; fileRef = 93AFA6D213D8ABA6005EE725 /* ImageSpinner.m */; };
21 | /* End PBXBuildFile section */
22 |
23 | /* Begin PBXFileReference section */
24 | 93AFA6AB13D8AA88005EE725 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
25 | 93AFA6AF13D8AA88005EE725 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
26 | 93AFA6B113D8AA88005EE725 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
27 | 93AFA6B313D8AA88005EE725 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
28 | 93AFA6B713D8AA88005EE725 /* Example-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Example-Info.plist"; sourceTree = ""; };
29 | 93AFA6B913D8AA88005EE725 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
30 | 93AFA6BB13D8AA88005EE725 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
31 | 93AFA6BD13D8AA88005EE725 /* Example-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Example-Prefix.pch"; sourceTree = ""; };
32 | 93AFA6BE13D8AA88005EE725 /* ExampleAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExampleAppDelegate.h; sourceTree = ""; };
33 | 93AFA6BF13D8AA88005EE725 /* ExampleAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleAppDelegate.m; sourceTree = ""; };
34 | 93AFA6C213D8AA88005EE725 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; };
35 | 93AFA6C413D8AA88005EE725 /* ExampleViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExampleViewController.h; sourceTree = ""; };
36 | 93AFA6C513D8AA88005EE725 /* ExampleViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleViewController.m; sourceTree = ""; };
37 | 93AFA6C813D8AA88005EE725 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ExampleViewController.xib; sourceTree = ""; };
38 | 93AFA6CF13D8AB9C005EE725 /* shuttle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = shuttle.png; sourceTree = ""; };
39 | 93AFA6D113D8ABA6005EE725 /* ImageSpinner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageSpinner.h; path = ../ImageSpinner.h; sourceTree = ""; };
40 | 93AFA6D213D8ABA6005EE725 /* ImageSpinner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageSpinner.m; path = ../ImageSpinner.m; sourceTree = ""; };
41 | /* End PBXFileReference section */
42 |
43 | /* Begin PBXFrameworksBuildPhase section */
44 | 93AFA6A813D8AA88005EE725 /* Frameworks */ = {
45 | isa = PBXFrameworksBuildPhase;
46 | buildActionMask = 2147483647;
47 | files = (
48 | 93AFA6B013D8AA88005EE725 /* UIKit.framework in Frameworks */,
49 | 93AFA6B213D8AA88005EE725 /* Foundation.framework in Frameworks */,
50 | 93AFA6B413D8AA88005EE725 /* CoreGraphics.framework in Frameworks */,
51 | );
52 | runOnlyForDeploymentPostprocessing = 0;
53 | };
54 | /* End PBXFrameworksBuildPhase section */
55 |
56 | /* Begin PBXGroup section */
57 | 93AFA6A013D8AA88005EE725 = {
58 | isa = PBXGroup;
59 | children = (
60 | 93AFA6D113D8ABA6005EE725 /* ImageSpinner.h */,
61 | 93AFA6D213D8ABA6005EE725 /* ImageSpinner.m */,
62 | 93AFA6B513D8AA88005EE725 /* Example */,
63 | 93AFA6AE13D8AA88005EE725 /* Frameworks */,
64 | 93AFA6AC13D8AA88005EE725 /* Products */,
65 | );
66 | sourceTree = "";
67 | };
68 | 93AFA6AC13D8AA88005EE725 /* Products */ = {
69 | isa = PBXGroup;
70 | children = (
71 | 93AFA6AB13D8AA88005EE725 /* Example.app */,
72 | );
73 | name = Products;
74 | sourceTree = "";
75 | };
76 | 93AFA6AE13D8AA88005EE725 /* Frameworks */ = {
77 | isa = PBXGroup;
78 | children = (
79 | 93AFA6AF13D8AA88005EE725 /* UIKit.framework */,
80 | 93AFA6B113D8AA88005EE725 /* Foundation.framework */,
81 | 93AFA6B313D8AA88005EE725 /* CoreGraphics.framework */,
82 | );
83 | name = Frameworks;
84 | sourceTree = "";
85 | };
86 | 93AFA6B513D8AA88005EE725 /* Example */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 93AFA6CF13D8AB9C005EE725 /* shuttle.png */,
90 | 93AFA6BE13D8AA88005EE725 /* ExampleAppDelegate.h */,
91 | 93AFA6BF13D8AA88005EE725 /* ExampleAppDelegate.m */,
92 | 93AFA6C113D8AA88005EE725 /* MainWindow.xib */,
93 | 93AFA6C413D8AA88005EE725 /* ExampleViewController.h */,
94 | 93AFA6C513D8AA88005EE725 /* ExampleViewController.m */,
95 | 93AFA6C713D8AA88005EE725 /* ExampleViewController.xib */,
96 | 93AFA6B613D8AA88005EE725 /* Supporting Files */,
97 | );
98 | path = Example;
99 | sourceTree = "";
100 | };
101 | 93AFA6B613D8AA88005EE725 /* Supporting Files */ = {
102 | isa = PBXGroup;
103 | children = (
104 | 93AFA6B713D8AA88005EE725 /* Example-Info.plist */,
105 | 93AFA6B813D8AA88005EE725 /* InfoPlist.strings */,
106 | 93AFA6BB13D8AA88005EE725 /* main.m */,
107 | 93AFA6BD13D8AA88005EE725 /* Example-Prefix.pch */,
108 | );
109 | name = "Supporting Files";
110 | sourceTree = "";
111 | };
112 | /* End PBXGroup section */
113 |
114 | /* Begin PBXNativeTarget section */
115 | 93AFA6AA13D8AA88005EE725 /* Example */ = {
116 | isa = PBXNativeTarget;
117 | buildConfigurationList = 93AFA6CC13D8AA88005EE725 /* Build configuration list for PBXNativeTarget "Example" */;
118 | buildPhases = (
119 | 93AFA6A713D8AA88005EE725 /* Sources */,
120 | 93AFA6A813D8AA88005EE725 /* Frameworks */,
121 | 93AFA6A913D8AA88005EE725 /* Resources */,
122 | );
123 | buildRules = (
124 | );
125 | dependencies = (
126 | );
127 | name = Example;
128 | productName = Example;
129 | productReference = 93AFA6AB13D8AA88005EE725 /* Example.app */;
130 | productType = "com.apple.product-type.application";
131 | };
132 | /* End PBXNativeTarget section */
133 |
134 | /* Begin PBXProject section */
135 | 93AFA6A213D8AA88005EE725 /* Project object */ = {
136 | isa = PBXProject;
137 | attributes = {
138 | ORGANIZATIONNAME = "Structlab LLC";
139 | };
140 | buildConfigurationList = 93AFA6A513D8AA88005EE725 /* Build configuration list for PBXProject "Example" */;
141 | compatibilityVersion = "Xcode 3.2";
142 | developmentRegion = English;
143 | hasScannedForEncodings = 0;
144 | knownRegions = (
145 | en,
146 | );
147 | mainGroup = 93AFA6A013D8AA88005EE725;
148 | productRefGroup = 93AFA6AC13D8AA88005EE725 /* Products */;
149 | projectDirPath = "";
150 | projectRoot = "";
151 | targets = (
152 | 93AFA6AA13D8AA88005EE725 /* Example */,
153 | );
154 | };
155 | /* End PBXProject section */
156 |
157 | /* Begin PBXResourcesBuildPhase section */
158 | 93AFA6A913D8AA88005EE725 /* Resources */ = {
159 | isa = PBXResourcesBuildPhase;
160 | buildActionMask = 2147483647;
161 | files = (
162 | 93AFA6BA13D8AA88005EE725 /* InfoPlist.strings in Resources */,
163 | 93AFA6C313D8AA88005EE725 /* MainWindow.xib in Resources */,
164 | 93AFA6C913D8AA88005EE725 /* ExampleViewController.xib in Resources */,
165 | 93AFA6D013D8AB9C005EE725 /* shuttle.png in Resources */,
166 | );
167 | runOnlyForDeploymentPostprocessing = 0;
168 | };
169 | /* End PBXResourcesBuildPhase section */
170 |
171 | /* Begin PBXSourcesBuildPhase section */
172 | 93AFA6A713D8AA88005EE725 /* Sources */ = {
173 | isa = PBXSourcesBuildPhase;
174 | buildActionMask = 2147483647;
175 | files = (
176 | 93AFA6BC13D8AA88005EE725 /* main.m in Sources */,
177 | 93AFA6C013D8AA88005EE725 /* ExampleAppDelegate.m in Sources */,
178 | 93AFA6C613D8AA88005EE725 /* ExampleViewController.m in Sources */,
179 | 93AFA6D313D8ABA6005EE725 /* ImageSpinner.m in Sources */,
180 | );
181 | runOnlyForDeploymentPostprocessing = 0;
182 | };
183 | /* End PBXSourcesBuildPhase section */
184 |
185 | /* Begin PBXVariantGroup section */
186 | 93AFA6B813D8AA88005EE725 /* InfoPlist.strings */ = {
187 | isa = PBXVariantGroup;
188 | children = (
189 | 93AFA6B913D8AA88005EE725 /* en */,
190 | );
191 | name = InfoPlist.strings;
192 | sourceTree = "";
193 | };
194 | 93AFA6C113D8AA88005EE725 /* MainWindow.xib */ = {
195 | isa = PBXVariantGroup;
196 | children = (
197 | 93AFA6C213D8AA88005EE725 /* en */,
198 | );
199 | name = MainWindow.xib;
200 | sourceTree = "";
201 | };
202 | 93AFA6C713D8AA88005EE725 /* ExampleViewController.xib */ = {
203 | isa = PBXVariantGroup;
204 | children = (
205 | 93AFA6C813D8AA88005EE725 /* en */,
206 | );
207 | name = ExampleViewController.xib;
208 | sourceTree = "";
209 | };
210 | /* End PBXVariantGroup section */
211 |
212 | /* Begin XCBuildConfiguration section */
213 | 93AFA6CA13D8AA88005EE725 /* Debug */ = {
214 | isa = XCBuildConfiguration;
215 | buildSettings = {
216 | ALWAYS_SEARCH_USER_PATHS = NO;
217 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
218 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
219 | COPY_PHASE_STRIP = NO;
220 | GCC_C_LANGUAGE_STANDARD = gnu99;
221 | GCC_DYNAMIC_NO_PIC = NO;
222 | GCC_OPTIMIZATION_LEVEL = 0;
223 | GCC_PREPROCESSOR_DEFINITIONS = (
224 | "DEBUG=1",
225 | "$(inherited)",
226 | );
227 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
228 | GCC_VERSION = com.apple.compilers.llvmgcc42;
229 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
230 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
231 | GCC_WARN_UNUSED_VARIABLE = YES;
232 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
233 | SDKROOT = iphoneos;
234 | };
235 | name = Debug;
236 | };
237 | 93AFA6CB13D8AA88005EE725 /* Release */ = {
238 | isa = XCBuildConfiguration;
239 | buildSettings = {
240 | ALWAYS_SEARCH_USER_PATHS = NO;
241 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
242 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
243 | COPY_PHASE_STRIP = YES;
244 | GCC_C_LANGUAGE_STANDARD = gnu99;
245 | GCC_VERSION = com.apple.compilers.llvmgcc42;
246 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
247 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
248 | GCC_WARN_UNUSED_VARIABLE = YES;
249 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
250 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
251 | SDKROOT = iphoneos;
252 | VALIDATE_PRODUCT = YES;
253 | };
254 | name = Release;
255 | };
256 | 93AFA6CD13D8AA88005EE725 /* Debug */ = {
257 | isa = XCBuildConfiguration;
258 | buildSettings = {
259 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
260 | GCC_PREFIX_HEADER = "Example/Example-Prefix.pch";
261 | INFOPLIST_FILE = "Example/Example-Info.plist";
262 | PRODUCT_NAME = "$(TARGET_NAME)";
263 | WRAPPER_EXTENSION = app;
264 | };
265 | name = Debug;
266 | };
267 | 93AFA6CE13D8AA88005EE725 /* Release */ = {
268 | isa = XCBuildConfiguration;
269 | buildSettings = {
270 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
271 | GCC_PREFIX_HEADER = "Example/Example-Prefix.pch";
272 | INFOPLIST_FILE = "Example/Example-Info.plist";
273 | PRODUCT_NAME = "$(TARGET_NAME)";
274 | WRAPPER_EXTENSION = app;
275 | };
276 | name = Release;
277 | };
278 | /* End XCBuildConfiguration section */
279 |
280 | /* Begin XCConfigurationList section */
281 | 93AFA6A513D8AA88005EE725 /* Build configuration list for PBXProject "Example" */ = {
282 | isa = XCConfigurationList;
283 | buildConfigurations = (
284 | 93AFA6CA13D8AA88005EE725 /* Debug */,
285 | 93AFA6CB13D8AA88005EE725 /* Release */,
286 | );
287 | defaultConfigurationIsVisible = 0;
288 | defaultConfigurationName = Release;
289 | };
290 | 93AFA6CC13D8AA88005EE725 /* Build configuration list for PBXNativeTarget "Example" */ = {
291 | isa = XCConfigurationList;
292 | buildConfigurations = (
293 | 93AFA6CD13D8AA88005EE725 /* Debug */,
294 | 93AFA6CE13D8AA88005EE725 /* Release */,
295 | );
296 | defaultConfigurationIsVisible = 0;
297 | };
298 | /* End XCConfigurationList section */
299 | };
300 | rootObject = 93AFA6A213D8AA88005EE725 /* Project object */;
301 | }
302 |
--------------------------------------------------------------------------------
/Example/Example/en.lproj/MainWindow.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1024
5 | 10D571
6 | 786
7 | 1038.29
8 | 460.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 112
12 |
13 |
14 | YES
15 |
16 |
17 |
18 | YES
19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
20 |
21 |
22 | YES
23 |
24 | YES
25 |
26 |
27 | YES
28 |
29 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 | IBCocoaTouchFramework
42 |
43 |
44 | ExampleViewController
45 |
46 |
47 | 1
48 |
49 | IBCocoaTouchFramework
50 | NO
51 |
52 |
53 |
54 | 292
55 | {320, 480}
56 |
57 | 1
58 | MSAxIDEAA
59 |
60 | NO
61 | NO
62 |
63 | IBCocoaTouchFramework
64 | YES
65 |
66 |
67 |
68 |
69 | YES
70 |
71 |
72 | delegate
73 |
74 |
75 |
76 | 4
77 |
78 |
79 |
80 | viewController
81 |
82 |
83 |
84 | 11
85 |
86 |
87 |
88 | window
89 |
90 |
91 |
92 | 14
93 |
94 |
95 |
96 |
97 | YES
98 |
99 | 0
100 |
101 |
102 |
103 |
104 |
105 | -1
106 |
107 |
108 | File's Owner
109 |
110 |
111 | 3
112 |
113 |
114 | Example App Delegate
115 |
116 |
117 | -2
118 |
119 |
120 |
121 |
122 | 10
123 |
124 |
125 |
126 |
127 | 12
128 |
129 |
130 |
131 |
132 |
133 |
134 | YES
135 |
136 | YES
137 | -1.CustomClassName
138 | -2.CustomClassName
139 | 10.CustomClassName
140 | 10.IBEditorWindowLastContentRect
141 | 10.IBPluginDependency
142 | 12.IBEditorWindowLastContentRect
143 | 12.IBPluginDependency
144 | 3.CustomClassName
145 | 3.IBPluginDependency
146 |
147 |
148 | YES
149 | UIApplication
150 | UIResponder
151 | ExampleViewController
152 | {{234, 376}, {320, 480}}
153 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
154 | {{525, 346}, {320, 480}}
155 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
156 | ExampleAppDelegate
157 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
158 |
159 |
160 |
161 | YES
162 |
163 |
164 | YES
165 |
166 |
167 |
168 |
169 | YES
170 |
171 |
172 | YES
173 |
174 |
175 |
176 | 15
177 |
178 |
179 |
180 | YES
181 |
182 | UIWindow
183 | UIView
184 |
185 | IBUserSource
186 |
187 |
188 |
189 |
190 | ExampleAppDelegate
191 | NSObject
192 |
193 | YES
194 |
195 | YES
196 | viewController
197 | window
198 |
199 |
200 | YES
201 | ExampleViewController
202 | UIWindow
203 |
204 |
205 |
206 | YES
207 |
208 | YES
209 | viewController
210 | window
211 |
212 |
213 | YES
214 |
215 | viewController
216 | ExampleViewController
217 |
218 |
219 | window
220 | UIWindow
221 |
222 |
223 |
224 |
225 | IBProjectSource
226 | ExampleAppDelegate.h
227 |
228 |
229 |
230 | ExampleAppDelegate
231 | NSObject
232 |
233 | IBUserSource
234 |
235 |
236 |
237 |
238 | ExampleViewController
239 | UIViewController
240 |
241 | IBProjectSource
242 | ExampleViewController.h
243 |
244 |
245 |
246 |
247 | YES
248 |
249 | NSObject
250 |
251 | IBFrameworkSource
252 | Foundation.framework/Headers/NSError.h
253 |
254 |
255 |
256 | NSObject
257 |
258 | IBFrameworkSource
259 | Foundation.framework/Headers/NSFileManager.h
260 |
261 |
262 |
263 | NSObject
264 |
265 | IBFrameworkSource
266 | Foundation.framework/Headers/NSKeyValueCoding.h
267 |
268 |
269 |
270 | NSObject
271 |
272 | IBFrameworkSource
273 | Foundation.framework/Headers/NSKeyValueObserving.h
274 |
275 |
276 |
277 | NSObject
278 |
279 | IBFrameworkSource
280 | Foundation.framework/Headers/NSKeyedArchiver.h
281 |
282 |
283 |
284 | NSObject
285 |
286 | IBFrameworkSource
287 | Foundation.framework/Headers/NSObject.h
288 |
289 |
290 |
291 | NSObject
292 |
293 | IBFrameworkSource
294 | Foundation.framework/Headers/NSRunLoop.h
295 |
296 |
297 |
298 | NSObject
299 |
300 | IBFrameworkSource
301 | Foundation.framework/Headers/NSThread.h
302 |
303 |
304 |
305 | NSObject
306 |
307 | IBFrameworkSource
308 | Foundation.framework/Headers/NSURL.h
309 |
310 |
311 |
312 | NSObject
313 |
314 | IBFrameworkSource
315 | Foundation.framework/Headers/NSURLConnection.h
316 |
317 |
318 |
319 | NSObject
320 |
321 | IBFrameworkSource
322 | UIKit.framework/Headers/UIAccessibility.h
323 |
324 |
325 |
326 | NSObject
327 |
328 | IBFrameworkSource
329 | UIKit.framework/Headers/UINibLoading.h
330 |
331 |
332 |
333 | NSObject
334 |
335 | IBFrameworkSource
336 | UIKit.framework/Headers/UIResponder.h
337 |
338 |
339 |
340 | UIApplication
341 | UIResponder
342 |
343 | IBFrameworkSource
344 | UIKit.framework/Headers/UIApplication.h
345 |
346 |
347 |
348 | UIResponder
349 | NSObject
350 |
351 |
352 |
353 | UISearchBar
354 | UIView
355 |
356 | IBFrameworkSource
357 | UIKit.framework/Headers/UISearchBar.h
358 |
359 |
360 |
361 | UISearchDisplayController
362 | NSObject
363 |
364 | IBFrameworkSource
365 | UIKit.framework/Headers/UISearchDisplayController.h
366 |
367 |
368 |
369 | UIView
370 |
371 | IBFrameworkSource
372 | UIKit.framework/Headers/UITextField.h
373 |
374 |
375 |
376 | UIView
377 | UIResponder
378 |
379 | IBFrameworkSource
380 | UIKit.framework/Headers/UIView.h
381 |
382 |
383 |
384 | UIViewController
385 |
386 | IBFrameworkSource
387 | UIKit.framework/Headers/UINavigationController.h
388 |
389 |
390 |
391 | UIViewController
392 |
393 | IBFrameworkSource
394 | UIKit.framework/Headers/UIPopoverController.h
395 |
396 |
397 |
398 | UIViewController
399 |
400 | IBFrameworkSource
401 | UIKit.framework/Headers/UISplitViewController.h
402 |
403 |
404 |
405 | UIViewController
406 |
407 | IBFrameworkSource
408 | UIKit.framework/Headers/UITabBarController.h
409 |
410 |
411 |
412 | UIViewController
413 | UIResponder
414 |
415 | IBFrameworkSource
416 | UIKit.framework/Headers/UIViewController.h
417 |
418 |
419 |
420 | UIWindow
421 | UIView
422 |
423 | IBFrameworkSource
424 | UIKit.framework/Headers/UIWindow.h
425 |
426 |
427 |
428 |
429 | 0
430 | IBCocoaTouchFramework
431 |
432 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
433 |
434 |
435 |
436 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
437 |
438 |
439 | YES
440 | Example.xcodeproj
441 | 3
442 | 112
443 |
444 |
445 |
--------------------------------------------------------------------------------