Browse files

Updated demo, cleaned up code, minor bug fixes.

  • Loading branch information...
1 parent b71046d commit 17e814713bbc2c7c32d96646adcb16dedde67a57 @devindoty devindoty committed Feb 2, 2010
Showing with 782 additions and 573 deletions.
  1. +9 −3 Demo/TableViewPull/Classes/{ → Controller/RootViewController}/RootViewController.h
  2. +71 −12 Demo/TableViewPull/Classes/{ → Controller/RootViewController}/RootViewController.m
  3. 0 Demo/TableViewPull/Classes/{ → Delegate}/TableViewPullAppDelegate.h
  4. 0 Demo/TableViewPull/Classes/{ → Delegate}/TableViewPullAppDelegate.m
  5. +0 −45 Demo/TableViewPull/Classes/EGOTableViewPullRefresh.h
  6. +0 −96 Demo/TableViewPull/Classes/EGOTableViewPullRefresh.m
  7. 0 ...esh/Classes → Demo/TableViewPull/Classes/View/RefreshTableHeaderView}/EGORefreshTableHeaderView.h
  8. +12 −9 Demo/TableViewPull/Classes/{ → View/RefreshTableHeaderView}/EGORefreshTableHeaderView.m
  9. 0 Demo/TableViewPull/{ → Resources}/MainWindow.xib
  10. +55 −22 Demo/TableViewPull/{ → Resources}/RootViewController.xib
  11. 0 Demo/TableViewPull/{ → Resources}/TableViewPull-Info.plist
  12. 0 Demo/TableViewPull/{ → Resources}/blackArrow.png
  13. 0 Demo/TableViewPull/{ → Resources}/blueArrow.png
  14. 0 Demo/TableViewPull/{ → Resources}/whiteArrow.png
  15. +91 −52 Demo/TableViewPull/TableViewPull.xcodeproj/codekeeper.mode1v3
  16. +220 −174 Demo/TableViewPull/TableViewPull.xcodeproj/codekeeper.pbxuser
  17. +58 −40 Demo/TableViewPull/TableViewPull.xcodeproj/project.pbxproj
  18. +10 −15 EGOTableViewPullRefresh/Classes/{EGOTableViewPullRefresh.h → Controller/RootViewController.h}
  19. +244 −0 EGOTableViewPullRefresh/Classes/Controller/RootViewController.m
  20. +0 −96 EGOTableViewPullRefresh/Classes/EGOTableViewPullRefresh.m
  21. 0 {Demo/TableViewPull/Classes → EGOTableViewPullRefresh/Classes/View}/EGORefreshTableHeaderView.h
  22. +12 −9 EGOTableViewPullRefresh/Classes/{ → View}/EGORefreshTableHeaderView.m
View
12 ...ableViewPull/Classes/RootViewController.h → ...r/RootViewController/RootViewController.h
@@ -24,11 +24,17 @@
// THE SOFTWARE.
//
-@class EGOTableViewPullRefresh;
-@interface RootViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
- EGOTableViewPullRefresh *egoTableView;
+@class EGORefreshTableHeaderView;
+@interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>{
+ EGORefreshTableHeaderView *refreshHeaderView;
+
+ // Reloading should really be your tableviews model class
+ // Putting it here for demo purposes
+ BOOL _reloading;
}
+@property(assign,getter=isReloading) BOOL reloading;
+
- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
@end
View
83 ...ableViewPull/Classes/RootViewController.m → ...r/RootViewController/RootViewController.m
@@ -25,22 +25,35 @@
//
#import "RootViewController.h"
-#import "EGOTableViewPullRefresh.h"
+#import "EGORefreshTableHeaderView.h"
+
+#define kReleaseToReloadStatus 0
+#define kPullToReloadStatus 1
+#define kLoadingStatus 2
+
+
+@interface RootViewController (Private)
+
+- (void)dataSourceDidFinishLoadingNewData;
+
+@end
+
@implementation RootViewController
+@synthesize reloading=_reloading;
+
- (void)viewDidLoad {
[super viewDidLoad];
- // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
- // self.navigationItem.rightBarButtonItem = self.editButtonItem;
-
- egoTableView = [[EGOTableViewPullRefresh alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
- egoTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
- egoTableView.dataSource = self;
- egoTableView.delegate = egoTableView;
- [self.view addSubview:egoTableView];
+ if (refreshHeaderView == nil) {
+ refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, 320.0f, self.tableView.bounds.size.height)];
+ refreshHeaderView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:231.0/255.0 blue:237.0/255.0 alpha:1.0];
+ [self.tableView addSubview:refreshHeaderView];
+ self.tableView.showsVerticalScrollIndicator = YES;
+ [refreshHeaderView release];
+ }
}
@@ -81,8 +94,7 @@ - (void)didReceiveMemoryWarning {
}
- (void)viewDidUnload {
- // Release anything that can be recreated in viewDidLoad or on demand.
- // e.g. self.myOutlet = nil;
+ refreshHeaderView=nil;
}
@@ -115,12 +127,15 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
}
- (void)reloadTableViewDataSource{
+ // should be calling your tableviews model to reload
+ // put here just for demo
[self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
}
- (void)doneLoadingTableViewData{
- [egoTableView dataSourceDidFinishLoadingNewData];
+ // model should call this when its done loading
+ [self dataSourceDidFinishLoadingNewData];
}
@@ -176,7 +191,51 @@ - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)
*/
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
+
+ if (scrollView.isDragging) {
+ if (refreshHeaderView.isFlipped && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && !_reloading) {
+ [refreshHeaderView flipImageAnimated:YES];
+ [refreshHeaderView setStatus:kPullToReloadStatus];
+ } else if (!refreshHeaderView.isFlipped && scrollView.contentOffset.y < -65.0f && !_reloading) {
+ [refreshHeaderView flipImageAnimated:YES];
+ [refreshHeaderView setStatus:kReleaseToReloadStatus];
+ }
+ }
+}
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
+
+ if (scrollView.contentOffset.y <= - 65.0f && !_reloading) {
+ _reloading = YES;
+ [self reloadTableViewDataSource];
+ [refreshHeaderView toggleActivityView];
+ [UIView beginAnimations:nil context:NULL];
+ [UIView setAnimationDuration:0.2];
+ self.tableView.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f);
+ [UIView commitAnimations];
+ }
+}
+
+- (void)dataSourceDidFinishLoadingNewData{
+
+ _reloading = NO;
+
+ [UIView beginAnimations:nil context:NULL];
+ [UIView setAnimationDuration:.3];
+ [self.tableView setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)];
+ [UIView commitAnimations];
+
+ [refreshHeaderView flipImageAnimated:NO]; // reset view
+ [refreshHeaderView toggleActivityView]; // reset view
+ [refreshHeaderView setCurrentDate]; // should check if data reload was successful
+}
+
+#pragma mark -
+#pragma mark Dealloc
+
- (void)dealloc {
+ refreshHeaderView = nil;
[super dealloc];
}
View
0 ...ewPull/Classes/TableViewPullAppDelegate.h → ...asses/Delegate/TableViewPullAppDelegate.h
File renamed without changes.
View
0 ...ewPull/Classes/TableViewPullAppDelegate.m → ...asses/Delegate/TableViewPullAppDelegate.m
File renamed without changes.
View
45 Demo/TableViewPull/Classes/EGOTableViewPullRefresh.h
@@ -1,45 +0,0 @@
-//
-// EGOTableViewPullRefresh.h
-// TableViewPull
-//
-// Created by Devin Doty on 10/16/09October16.
-// Copyright 2009 enormego. All rights reserved.
-//
-// 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:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// 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.
-//
-
-#import <UIKit/UIKit.h>
-#import <Foundation/Foundation.h>
-
-@class EGORefreshTableHeaderView;
-
-@interface EGOTableViewPullRefresh : UITableView <UITableViewDelegate>{
-
- EGORefreshTableHeaderView *refreshHeaderView;
- BOOL reloading; // should be pulled from datasource
-
-}
-- (void)dataSourceDidFinishLoadingNewData;
-@end
-
-@protocol UITableViewReloadDataSource
-- (void)reloadTableViewDataSource;
-@end
-
-
View
96 Demo/TableViewPull/Classes/EGOTableViewPullRefresh.m
@@ -1,96 +0,0 @@
-//
-// EGOTableViewPullRefresh.m
-// TableViewPull
-//
-// Created by Devin Doty on 10/16/09October16.
-// Copyright 2009 enormego. All rights reserved.
-//
-// 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:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// 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.
-//
-
-#import "EGOTableViewPullRefresh.h"
-#import "EGORefreshTableHeaderView.h"
-
-#define kReleaseToReloadStatus 0
-#define kPullToReloadStatus 1
-#define kLoadingStatus 2
-
-@implementation EGOTableViewPullRefresh
-
-- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style{
-
- if (self = [super initWithFrame:frame style:style]){
- refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.bounds.size.height, 320.0f, self.bounds.size.height)];
- refreshHeaderView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:231.0/255.0 blue:237.0/255.0 alpha:1.0];
- [self addSubview:refreshHeaderView];
- self.showsVerticalScrollIndicator = YES;
- [refreshHeaderView release];
- }
- return self;
-}
-
-- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
-
- if (scrollView.isDragging) {
- if (refreshHeaderView.isFlipped && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && !reloading) {
- [refreshHeaderView flipImageAnimated:YES];
- [refreshHeaderView setStatus:kPullToReloadStatus];
- } else if (!refreshHeaderView.isFlipped && scrollView.contentOffset.y < -65.0f && !reloading) {
- [refreshHeaderView flipImageAnimated:YES];
- [refreshHeaderView setStatus:kReleaseToReloadStatus];
- }
- }
-}
-
-- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
-
- if (scrollView.contentOffset.y <= - 65.0f && !reloading) {
- if([self.dataSource respondsToSelector:@selector(reloadTableViewDataSource)]){
- reloading = YES;
- [(id)self.dataSource reloadTableViewDataSource];
- [refreshHeaderView toggleActivityView];
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:0.2];
- self.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f);
- [UIView commitAnimations];
- }
- }
-}
-
-- (void)dataSourceDidFinishLoadingNewData{
-
- reloading = NO;
-
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:.3];
- [self setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)];
- [UIView commitAnimations];
-
- [refreshHeaderView flipImageAnimated:NO]; // reset view
- [refreshHeaderView toggleActivityView]; // reset view
- [refreshHeaderView setCurrentDate]; // should check if data reload was successful
-}
-
-- (void)dealloc {
- refreshHeaderView = nil;
- [super dealloc];
-}
-
-
-@end
View
0 ...fresh/Classes/EGORefreshTableHeaderView.h → ...bleHeaderView/EGORefreshTableHeaderView.h
File renamed without changes.
View
21 ...wPull/Classes/EGORefreshTableHeaderView.m → ...bleHeaderView/EGORefreshTableHeaderView.m
@@ -61,7 +61,7 @@ - (id)initWithFrame:(CGRect)frame {
[self setCurrentDate];
}
- statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, frame.size.height - 48.0f, 320.0f, 20.0f)];
+ statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, frame.size.height - 48.0f, self.frame.size.width, 20.0f)];
statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth;
statusLabel.font = [UIFont boldSystemFontOfSize:13.0f];
statusLabel.textColor = TEXT_COLOR;
@@ -104,15 +104,18 @@ - (void)drawRect:(CGRect)rect{
- (void)flipImageAnimated:(BOOL)animated{
if (!animated) {
- [arrowImage removeAllAnimations];
+ [CATransaction begin];
+ [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
+ arrowImage.transform = CATransform3DIdentity;
+ [CATransaction commit];
} else {
- CABasicAnimation *animation = [CABasicAnimation animation];
- animation.fromValue = isFlipped ? [NSValue valueWithCATransform3D:CATransform3DMakeRotation((M_PI / 180.0) * 179.9, 0.0f, 0.0f, 1.0f)] : [NSValue valueWithCATransform3D:CATransform3DIdentity];
- animation.toValue = isFlipped ? [NSValue valueWithCATransform3D:CATransform3DIdentity] : [NSValue valueWithCATransform3D:CATransform3DMakeRotation((M_PI / 180.0) * 179.9, 0.0f, 0.0f, 1.0f)];
- animation.duration = animated ? .18 : 0.0;
- animation.removedOnCompletion = NO;
- animation.fillMode = kCAFillModeForwards;
- [arrowImage addAnimation:animation forKey:@"transform"];
+ [CATransaction begin];
+ [CATransaction setAnimationDuration:animated ? .18 : 0.0];
+
+ CATransform3D transform = isFlipped ? CATransform3DIdentity : CATransform3DMakeRotation((M_PI / 180.0) * 180.0f, 0.0f, 0.0f, 1.0f);
+ arrowImage.transform = transform;
+
+ [CATransaction commit];
}
isFlipped = !isFlipped;
View
0 Demo/TableViewPull/MainWindow.xib → Demo/TableViewPull/Resources/MainWindow.xib
File renamed without changes.
View
77 Demo/TableViewPull/RootViewController.xib → ...ViewPull/Resources/RootViewController.xib
@@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">784</int>
- <string key="IBDocument.SystemVersion">10A432</string>
- <string key="IBDocument.InterfaceBuilderVersion">732</string>
- <string key="IBDocument.AppKitVersion">1038</string>
- <string key="IBDocument.HIToolboxVersion">437.00</string>
+ <string key="IBDocument.SystemVersion">10C540</string>
+ <string key="IBDocument.InterfaceBuilderVersion">759</string>
+ <string key="IBDocument.AppKitVersion">1038.25</string>
+ <string key="IBDocument.HIToolboxVersion">458.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">62</string>
+ <string key="NS.object.0">79</string>
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -30,22 +30,29 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="371349661">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
- <object class="IBUIView" id="150654800">
+ <object class="IBUITableView" id="269387249">
<nil key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{116, 209}, {320, 460}}</string>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{554, 98}, {320, 247}}</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
- <object class="NSColorSpace" key="NSCustomColorSpace">
- <int key="NSID">2</int>
- </object>
</object>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIBouncesZoom">NO</bool>
+ <int key="IBUISeparatorStyle">1</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">22</float>
+ <float key="IBUISectionFooterHeight">22</float>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
@@ -55,9 +62,9 @@
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="841351856"/>
- <reference key="destination" ref="150654800"/>
+ <reference key="destination" ref="269387249"/>
</object>
- <int key="connectionID">7</int>
+ <int key="connectionID">9</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
@@ -81,8 +88,8 @@
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">6</int>
- <reference key="object" ref="150654800"/>
+ <int key="objectID">8</int>
+ <reference key="object" ref="269387249"/>
<reference key="parent" ref="0"/>
</object>
</object>
@@ -93,7 +100,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
- <string>6.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -118,17 +125,17 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">7</int>
+ <int key="maxID">9</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">RootViewController</string>
- <string key="superclassName">UIViewController</string>
+ <string key="superclassName">UITableViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/RootViewController.h</string>
+ <string key="minorKey">Classes/Controller/RootViewController/RootViewController.h</string>
</object>
</object>
</object>
@@ -273,6 +280,14 @@
<reference key="sourceIdentifier" ref="654420027"/>
</object>
<object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
<string key="className">UISearchBar</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -289,6 +304,22 @@
</object>
</object>
<object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
<string key="className">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
@@ -328,6 +359,7 @@
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<integer value="784" key="NS.object.0"/>
@@ -337,8 +369,9 @@
<integer value="3100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">TableViewPull.xcodeproj</string>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../TableViewPull.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">3.1</string>
+ <string key="IBCocoaTouchPluginVersion">79</string>
+ <nil key="IBCocoaTouchSimulationTargetRuntimeIdentifier"/>
</data>
</archive>
View
0 Demo/TableViewPull/TableViewPull-Info.plist → ...ewPull/Resources/TableViewPull-Info.plist
File renamed without changes.
View
0 Demo/TableViewPull/blackArrow.png → Demo/TableViewPull/Resources/blackArrow.png
File renamed without changes
View
0 Demo/TableViewPull/blueArrow.png → Demo/TableViewPull/Resources/blueArrow.png
File renamed without changes
View
0 Demo/TableViewPull/whiteArrow.png → Demo/TableViewPull/Resources/whiteArrow.png
File renamed without changes
View
143 Demo/TableViewPull/TableViewPull.xcodeproj/codekeeper.mode1v3
@@ -232,14 +232,51 @@
<string>3A451E5510D1755B00C10A50</string>
<key>PBXProjectModuleLabel</key>
<string>EGORefreshTableHeaderView.m</string>
+ <key>history</key>
+ <array>
+ <string>3A451E9C10D176CB00C10A50</string>
+ <string>3ABDA77C10D1862E003ABED5</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {1310, 836}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>2663 12 1310 877 1680 -99 1680 1050 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>3A3D90FC11188487002B6585</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>RootViewController.m</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>3A3D90FD11188487002B6585</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>RootViewController.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>3ABDA77C10D1862E003ABED5</string>
+ <string>3A3D914C11188665002B6585</string>
<key>history</key>
<array>
- <string>3A451E9C10D176CB00C10A50</string>
- <string>3A451F1910D181A300C10A50</string>
+ <string>3A3D90FE11188487002B6585</string>
+ <string>3A3D90FF11188487002B6585</string>
</array>
</dict>
<key>SplitCount</key>
@@ -251,36 +288,35 @@
<key>Geometry</key>
<dict>
<key>Frame</key>
- <string>{{0, 20}, {1310, 836}}</string>
+ <string>{{0, 20}, {1294, 826}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
- <string>1796 21 1310 877 1680 -99 1680 1050 </string>
+ <string>15 156 1294 867 0 0 1680 1028 </string>
</dict>
</dict>
<dict>
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>3A451C2010D1570500C10A50</string>
+ <string>3A3D90951118802C002B6585</string>
<key>PBXProjectModuleLabel</key>
- <string>EGOTableViewPullRefresh.m</string>
+ <string>TableViewPullAppDelegate.m</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>3A451C2110D1570500C10A50</string>
+ <string>3A3D90961118802C002B6585</string>
<key>PBXProjectModuleLabel</key>
- <string>EGOTableViewPullRefresh.m</string>
+ <string>TableViewPullAppDelegate.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>3ABDA77D10D1862E003ABED5</string>
+ <string>3A3D914D11188665002B6585</string>
<key>history</key>
<array>
- <string>3A451EBA10D1775100C10A50</string>
- <string>3A451F1A10D181A300C10A50</string>
+ <string>3A3D908F11187FEC002B6585</string>
</array>
</dict>
<key>SplitCount</key>
@@ -292,11 +328,11 @@
<key>Geometry</key>
<dict>
<key>Frame</key>
- <string>{{0, 20}, {1310, 836}}</string>
+ <string>{{0, 20}, {1294, 826}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
- <string>1834 62 1310 877 1680 -99 1680 1050 </string>
+ <string>15 156 1294 867 0 0 1680 1028 </string>
</dict>
</dict>
</array>
@@ -367,10 +403,10 @@
<array>
<string>29B97314FDCFA39411CA2CEA</string>
<string>080E96DDFE201D6D7F000001</string>
- <string>3A2586051088ED7700126784</string>
- <string>3A25815A1088BDAC00126784</string>
+ <string>3A3D90931118801F002B6585</string>
+ <string>3A3D909211188012002B6585</string>
+ <string>3A3D909B11188064002B6585</string>
<string>29B97315FDCFA39411CA2CEA</string>
- <string>29B97317FDCFA39411CA2CEA</string>
<string>1C37FBAC04509CD000000102</string>
<string>1C37FABC05509CD000000102</string>
</array>
@@ -400,7 +436,7 @@
<real>331</real>
</array>
<key>RubberWindowFrame</key>
- <string>128 235 1283 793 0 0 1680 1028 </string>
+ <string>1852 126 1283 793 1680 -99 1680 1050 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -430,20 +466,20 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>3ABDA77A10D1862E003ABED5</string>
+ <string>3A3D914B11188665002B6585</string>
<key>history</key>
<array>
<string>3A451E9110D176B300C10A50</string>
<string>3ABDA76A10D18625003ABED5</string>
- <string>3ABDA76C10D18625003ABED5</string>
<string>3ABDA76D10D18625003ABED5</string>
<string>3ABDA76E10D18625003ABED5</string>
- <string>3ABDA76F10D18625003ABED5</string>
- <string>3ABDA77010D18625003ABED5</string>
- <string>3ABDA77110D18625003ABED5</string>
- <string>3ABDA77210D18625003ABED5</string>
- <string>3ABDA77710D1862E003ABED5</string>
- <string>3ABDA77810D1862E003ABED5</string>
+ <string>3A3D90BC11188277002B6585</string>
+ <string>3A3D90D3111882D9002B6585</string>
+ <string>3A3D90D4111882D9002B6585</string>
+ <string>3A3D90D5111882D9002B6585</string>
+ <string>3A3D91091118849B002B6585</string>
+ <string>3A3D912911188570002B6585</string>
+ <string>3A3D912211188548002B6585</string>
</array>
</dict>
<key>SplitCount</key>
@@ -455,14 +491,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {930, 548}}</string>
+ <string>{{0, 0}, {930, 542}}</string>
<key>RubberWindowFrame</key>
- <string>128 235 1283 793 0 0 1680 1028 </string>
+ <string>1852 126 1283 793 1680 -99 1680 1050 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>548pt</string>
+ <string>542pt</string>
</dict>
<dict>
<key>ContentConfiguration</key>
@@ -475,14 +511,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 553}, {930, 199}}</string>
+ <string>{{0, 547}, {930, 205}}</string>
<key>RubberWindowFrame</key>
- <string>128 235 1283 793 0 0 1680 1028 </string>
+ <string>1852 126 1283 793 1680 -99 1680 1050 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
- <string>199pt</string>
+ <string>205pt</string>
</dict>
</array>
<key>Proportion</key>
@@ -501,9 +537,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>3ABDA75A10D185DB003ABED5</string>
+ <string>3A3D906A11187F15002B6585</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>3ABDA75B10D185DB003ABED5</string>
+ <string>3A3D906B11187F15002B6585</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -624,7 +660,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>282166830.54056698</real>
+ <real>286819941.98460102</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,13 +677,16 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1CD10A99069EF8BA00B06720</string>
<string>3A2581631088BE7100126784</string>
- <string>3A451C2010D1570500C10A50</string>
+ <string>3A3D90951118802C002B6585</string>
+ <string>3A3D90FC11188487002B6585</string>
<string>3A451E5410D1755B00C10A50</string>
- <string>/Users/codekeeper/EGOTableViewPullRefresh/Demo/TableViewPull/TableViewPull.xcodeproj</string>
+ <string>/Users/codekeeper/Documents/iPhone Dev/EGOTableViewPullRefresh/Demo/TableViewPull/TableViewPull.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>128 235 1283 793 0 0 1680 1028 </string>
+ <string>1852 126 1283 793 1680 -99 1680 1050 </string>
<key>WindowToolsV3</key>
<array>
<dict>
@@ -668,7 +707,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string></string>
+ <string>EGORefreshTableHeaderView.m</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -726,7 +765,7 @@
<key>TableOfContents</key>
<array>
<string>3A2581631088BE7100126784</string>
- <string>3ABDA75E10D185DB003ABED5</string>
+ <string>3A3D906E11187F15002B6585</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@@ -770,8 +809,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {316, 198}}</string>
- <string>{{316, 0}, {378, 198}}</string>
+ <string>{{0, 0}, {316, 201}}</string>
+ <string>{{316, 0}, {378, 201}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -786,8 +825,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {694, 198}}</string>
- <string>{{0, 198}, {694, 183}}</string>
+ <string>{{0, 0}, {694, 201}}</string>
+ <string>{{0, 201}, {694, 180}}</string>
</array>
</dict>
</dict>
@@ -820,7 +859,7 @@
<real>148</real>
</array>
<key>Frame</key>
- <string>{{316, 0}, {378, 198}}</string>
+ <string>{{316, 0}, {378, 201}}</string>
<key>RubberWindowFrame</key>
<string>886 411 694 422 0 0 1680 1028 </string>
</dict>
@@ -848,13 +887,13 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>3A451BE710D1541A00C10A50</string>
+ <string>3A3D90B411188260002B6585</string>
<string>1C162984064C10D400B95A72</string>
- <string>3A451BE810D1541A00C10A50</string>
- <string>3A451BE910D1541A00C10A50</string>
- <string>3A451BEA10D1541A00C10A50</string>
- <string>3A451BEB10D1541A00C10A50</string>
- <string>3A451BEC10D1541A00C10A50</string>
+ <string>3A3D90B511188260002B6585</string>
+ <string>3A3D90B611188260002B6585</string>
+ <string>3A3D90B711188260002B6585</string>
+ <string>3A3D90B811188260002B6585</string>
+ <string>3A3D90B911188260002B6585</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@@ -1018,7 +1057,7 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
- <string>3A451BED10D1541A00C10A50</string>
+ <string>3A3D910E1118849B002B6585</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
View
394 Demo/TableViewPull/TableViewPull.xcodeproj/codekeeper.pbxuser
@@ -1,41 +1,11 @@
// !$*UTF8*$!
{
- 1D3623240D0F684500981E51 /* TableViewPullAppDelegate.h */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {869, 516}}";
- sepNavSelRange = "{1245, 0}";
- sepNavVisRange = "{0, 1549}";
- };
- };
- 1D3623250D0F684500981E51 /* TableViewPullAppDelegate.m */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {869, 806}}";
- sepNavSelRange = "{811, 0}";
- sepNavVisRange = "{0, 1539}";
- };
- };
1D6058900D05DD3D006BFB54 /* TableViewPull */ = {
activeExec = 0;
executables = (
3A2581391088BCF100126784 /* TableViewPull */,
);
};
- 28C286DF0D94DF7D0034E888 /* RootViewController.h */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {869, 516}}";
- sepNavSelRange = "{1240, 0}";
- sepNavVisRange = "{0, 1486}";
- sepNavWindowFrame = "{{15, 90}, {1310, 933}}";
- };
- };
- 28C286E00D94DF7D0034E888 /* RootViewController.m */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1048, 2418}}";
- sepNavSelRange = "{1240, 0}";
- sepNavVisRange = "{0, 1751}";
- sepNavWindowFrame = "{{168, 95}, {1310, 933}}";
- };
- };
29B97313FDCFA39411CA2CEA /* Project object */ = {
activeBuildConfigurationName = Debug;
activeExecutable = 3A2581391088BCF100126784 /* TableViewPull */;
@@ -83,15 +53,39 @@
PBXFindDataSource_LocationID,
);
};
+ PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 20,
+ 667,
+ 20,
+ 48.16259765625,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_SCM_ColumnID,
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 156,
+ 651,
60,
20,
- 48.16259765625,
+ 48,
43,
43,
);
@@ -105,28 +99,29 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 282166744;
- PBXWorkspaceStateSaveDate = 282166744;
+ PBXPerProjectTemplateStateSaveDate = 286818053;
+ PBXWorkspaceStateSaveDate = 286818053;
};
perUserProjectItems = {
+ 3A3D908F11187FEC002B6585 /* PBXBookmark */ = 3A3D908F11187FEC002B6585 /* PBXBookmark */;
+ 3A3D90BC11188277002B6585 /* PBXTextBookmark */ = 3A3D90BC11188277002B6585 /* PBXTextBookmark */;
+ 3A3D90D3111882D9002B6585 /* PBXTextBookmark */ = 3A3D90D3111882D9002B6585 /* PBXTextBookmark */;
+ 3A3D90D4111882D9002B6585 /* PBXBookmark */ = 3A3D90D4111882D9002B6585 /* PBXBookmark */;
+ 3A3D90D5111882D9002B6585 /* PBXTextBookmark */ = 3A3D90D5111882D9002B6585 /* PBXTextBookmark */;
+ 3A3D90FE11188487002B6585 /* PBXTextBookmark */ = 3A3D90FE11188487002B6585 /* PBXTextBookmark */;
+ 3A3D90FF11188487002B6585 /* PBXTextBookmark */ = 3A3D90FF11188487002B6585 /* PBXTextBookmark */;
+ 3A3D91091118849B002B6585 /* PBXTextBookmark */ = 3A3D91091118849B002B6585 /* PBXTextBookmark */;
+ 3A3D912211188548002B6585 /* XCBuildMessageTextBookmark */ = 3A3D912211188548002B6585 /* XCBuildMessageTextBookmark */;
+ 3A3D912911188570002B6585 /* PBXTextBookmark */ = 3A3D912911188570002B6585 /* PBXTextBookmark */;
+ 3A3D914B11188665002B6585 /* PBXTextBookmark */ = 3A3D914B11188665002B6585 /* PBXTextBookmark */;
+ 3A3D914C11188665002B6585 /* PBXTextBookmark */ = 3A3D914C11188665002B6585 /* PBXTextBookmark */;
+ 3A3D914D11188665002B6585 /* PBXTextBookmark */ = 3A3D914D11188665002B6585 /* PBXTextBookmark */;
3A451E9110D176B300C10A50 /* PBXBookmark */ = 3A451E9110D176B300C10A50 /* PBXBookmark */;
3A451E9C10D176CB00C10A50 /* PBXTextBookmark */ = 3A451E9C10D176CB00C10A50 /* PBXTextBookmark */;
- 3A451EBA10D1775100C10A50 /* PBXTextBookmark */ = 3A451EBA10D1775100C10A50 /* PBXTextBookmark */;
- 3A451F1910D181A300C10A50 /* PBXTextBookmark */ = 3A451F1910D181A300C10A50 /* PBXTextBookmark */;
- 3A451F1A10D181A300C10A50 /* PBXTextBookmark */ = 3A451F1A10D181A300C10A50 /* PBXTextBookmark */;
3ABDA76A10D18625003ABED5 /* PBXTextBookmark */ = 3ABDA76A10D18625003ABED5 /* PBXTextBookmark */;
- 3ABDA76C10D18625003ABED5 /* PBXTextBookmark */ = 3ABDA76C10D18625003ABED5 /* PBXTextBookmark */;
3ABDA76D10D18625003ABED5 /* PBXTextBookmark */ = 3ABDA76D10D18625003ABED5 /* PBXTextBookmark */;
3ABDA76E10D18625003ABED5 /* PBXTextBookmark */ = 3ABDA76E10D18625003ABED5 /* PBXTextBookmark */;
- 3ABDA76F10D18625003ABED5 /* PBXTextBookmark */ = 3ABDA76F10D18625003ABED5 /* PBXTextBookmark */;
- 3ABDA77010D18625003ABED5 /* PBXTextBookmark */ = 3ABDA77010D18625003ABED5 /* PBXTextBookmark */;
- 3ABDA77110D18625003ABED5 /* PBXTextBookmark */ = 3ABDA77110D18625003ABED5 /* PBXTextBookmark */;
- 3ABDA77210D18625003ABED5 /* PBXTextBookmark */ = 3ABDA77210D18625003ABED5 /* PBXTextBookmark */;
- 3ABDA77710D1862E003ABED5 /* PBXTextBookmark */ = 3ABDA77710D1862E003ABED5 /* PBXTextBookmark */;
- 3ABDA77810D1862E003ABED5 /* PBXTextBookmark */ = 3ABDA77810D1862E003ABED5 /* PBXTextBookmark */;
- 3ABDA77A10D1862E003ABED5 /* PBXTextBookmark */ = 3ABDA77A10D1862E003ABED5 /* PBXTextBookmark */;
3ABDA77C10D1862E003ABED5 /* PBXTextBookmark */ = 3ABDA77C10D1862E003ABED5 /* PBXTextBookmark */;
- 3ABDA77D10D1862E003ABED5 /* PBXTextBookmark */ = 3ABDA77D10D1862E003ABED5 /* PBXTextBookmark */;
};
sourceControlManager = 3A25814B1088BD1000126784 /* Source Control */;
userBuildSettings = {
@@ -174,23 +169,13 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 3A2581531088BD8100126784 /* EGOTableViewPullRefresh.h */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {869, 598}}";
- sepNavSelRange = "{1245, 0}";
- sepNavVisRange = "{0, 1567}";
- sepNavWindowFrame = "{{1826, -89}, {1310, 933}}";
- };
- };
- 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */ = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1251, 1209}}";
- sepNavSelRange = "{3373, 0}";
- sepNavVisRange = "{399, 2646}";
- sepNavWindowFrame = "{{153, 95}, {1310, 933}}";
- };
- };
3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.h;
+ name = EGORefreshTableHeaderView.h;
+ path = "/Users/codekeeper/Documents/iPhone Dev/EGOTableViewPullRefresh/Demo/TableViewPull/Classes/RefreshTableHeaderView/EGORefreshTableHeaderView.h";
+ sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {869, 637}}";
sepNavSelRange = "{1238, 0}";
@@ -199,187 +184,258 @@
};
};
3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.objc;
+ name = EGORefreshTableHeaderView.m;
+ path = "/Users/codekeeper/Documents/iPhone Dev/EGOTableViewPullRefresh/Demo/TableViewPull/Classes/RefreshTableHeaderView/EGORefreshTableHeaderView.m";
+ sourceTree = "<absolute>";
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1419, 2158}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1419, 2288}}";
sepNavSelRange = "{6082, 0}";
sepNavVisRange = "{3169, 2484}";
sepNavWindowFrame = "{{89, 95}, {1310, 933}}";
};
};
- 3A451E9110D176B300C10A50 /* PBXBookmark */ = {
+ 3A3D908C11187FE7002B6585 /* TableViewPullAppDelegate.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1235, 795}}";
+ sepNavSelRange = "{1346, 0}";
+ sepNavVisRange = "{0, 1549}";
+ sepNavWindowFrame = "{{15, 100}, {1294, 923}}";
+ };
+ };
+ 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1235, 858}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1928}";
+ sepNavWindowFrame = "{{15, 100}, {1294, 923}}";
+ };
+ };
+ 3A3D908F11187FEC002B6585 /* PBXBookmark */ = {
isa = PBXBookmark;
- fRef = 3A2585541088E97000126784 /* whiteArrow.png */;
+ fRef = 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */;
};
- 3A451E9C10D176CB00C10A50 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */;
- name = "EGORefreshTableHeaderView.h: 23";
- rLen = 0;
- rLoc = 1503;
- rType = 0;
- vrLen = 552;
- vrLoc = 0;
+ 3A3D909C11188064002B6585 /* EGORefreshTableHeaderView.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1235, 795}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1642}";
+ };
+ };
+ 3A3D909D11188064002B6585 /* EGORefreshTableHeaderView.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {985, 2327}}";
+ sepNavSelRange = "{4806, 0}";
+ sepNavVisRange = "{4373, 502}";
+ sepNavWindowFrame = "{{1874, 0}, {1294, 923}}";
+ };
+ };
+ 3A3D90A6111881DE002B6585 /* RootViewController.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {712, 507}}";
+ sepNavSelRange = "{1376, 0}";
+ sepNavVisRange = "{748, 777}";
+ };
};
- 3A451EBA10D1775100C10A50 /* PBXTextBookmark */ = {
+ 3A3D90A7111881DE002B6585 /* RootViewController.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1235, 3263}}";
+ sepNavSelRange = "{3986, 0}";
+ sepNavVisRange = "{5435, 1919}";
+ sepNavWindowFrame = "{{15, 100}, {1294, 923}}";
+ };
+ };
+ 3A3D90BC11188277002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3A2581531088BD8100126784 /* EGOTableViewPullRefresh.h */;
- name = "EGOTableViewPullRefresh.h: 20";
+ fRef = 3ABDA77B10D1862E003ABED5 /* EGORefreshTableHeaderView.m */;
+ name = "EGORefreshTableHeaderView.m: 15";
rLen = 0;
- rLoc = 1560;
+ rLoc = 649;
rType = 0;
- vrLen = 557;
+ vrLen = 1638;
vrLoc = 0;
};
- 3A451F1910D181A300C10A50 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */;
- name = "EGORefreshTableHeaderView.m: 133";
- rLen = 0;
- rLoc = 6082;
- rType = 0;
- vrLen = 2083;
- vrLoc = 3224;
+ 3A3D90C411188297002B6585 /* TableViewPull_Prefix.pch */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {869, 510}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 332}";
+ };
};
- 3A451F1A10D181A300C10A50 /* PBXTextBookmark */ = {
+ 3A3D90D3111882D9002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */;
- name = "EGOTableViewPullRefresh.m: 69";
+ fRef = 3A3D90C411188297002B6585 /* TableViewPull_Prefix.pch */;
+ name = "TableViewPull_Prefix.pch: 1";
rLen = 0;
- rLoc = 3373;
+ rLoc = 0;
rType = 0;
- vrLen = 2085;
- vrLoc = 363;
+ vrLen = 332;
+ vrLoc = 0;
};
- 3ABDA76A10D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D90D4111882D9002B6585 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 3A2585521088E97000126784 /* blackArrow.png */;
+ };
+ 3A3D90D5111882D9002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3ABDA76B10D18625003ABED5 /* NSArrayHelper.m */;
- name = "NSArrayHelper.m: 17";
+ fRef = 3A3D90A6111881DE002B6585 /* RootViewController.h */;
+ name = "RootViewController.h: 27";
rLen = 0;
- rLoc = 733;
+ rLoc = 1273;
rType = 0;
- vrLen = 1661;
+ vrLen = 1500;
vrLoc = 0;
};
- 3ABDA76B10D18625003ABED5 /* NSArrayHelper.m */ = {
- isa = PBXFileReference;
- name = NSArrayHelper.m;
- path = "/Users/codekeeper/Downloads/enormego-cocoa-helpers-842d0df/NSArray/NSArrayHelper.m";
- sourceTree = "<absolute>";
- };
- 3ABDA76C10D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D90FE11188487002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */;
- name = "EGOTableViewPullRefresh.m: 25";
+ fRef = 3A3D90A6111881DE002B6585 /* RootViewController.h */;
+ name = "RootViewController.h: 33";
rLen = 0;
- rLoc = 1244;
+ rLoc = 1532;
rType = 0;
- vrLen = 1847;
+ vrLen = 1674;
vrLoc = 0;
};
- 3ABDA76D10D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D90FF11188487002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */;
- name = "EGORefreshTableHeaderView.m: 26";
+ fRef = 3A3D90A7111881DE002B6585 /* RootViewController.m */;
+ name = "RootViewController.m: 204";
rLen = 0;
- rLoc = 1238;
+ rLoc = 6554;
rType = 0;
- vrLen = 1636;
- vrLoc = 3;
+ vrLen = 2001;
+ vrLoc = 5059;
};
- 3ABDA76E10D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D910211188495002B6585 /* main.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {869, 510}}";
+ sepNavSelRange = "{235, 0}";
+ sepNavVisRange = "{0, 375}";
+ };
+ };
+ 3A3D91091118849B002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */;
- name = "EGORefreshTableHeaderView.h: 26";
- rLen = 0;
- rLoc = 1238;
+ fRef = 3A3D90A7111881DE002B6585 /* RootViewController.m */;
+ name = "RootViewController.m: 59";
+ rLen = 1;
+ rLoc = 2079;
rType = 0;
- vrLen = 1484;
- vrLoc = 0;
+ vrLen = 966;
+ vrLoc = 1241;
};
- 3ABDA76F10D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D912211188548002B6585 /* XCBuildMessageTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "Assignment of read-only variable 'prop.171'";
+ fRef = 3A3D909D11188064002B6585 /* EGORefreshTableHeaderView.m */;
+ fallbackIsa = XCBuildMessageTextBookmark;
+ rLen = 1;
+ rLoc = 115;
+ rType = 1;
+ };
+ 3A3D912911188570002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */;
- name = "RootViewController.m: 26";
+ fRef = 3A3D910211188495002B6585 /* main.m */;
+ name = "main.m: 13";
rLen = 0;
- rLoc = 1240;
+ rLoc = 235;
rType = 0;
- vrLen = 1751;
+ vrLen = 375;
vrLoc = 0;
};
- 3ABDA77010D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D914B11188665002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 28C286DF0D94DF7D0034E888 /* RootViewController.h */;
- name = "RootViewController.h: 26";
+ fRef = 3A3D909D11188064002B6585 /* EGORefreshTableHeaderView.m */;
+ name = "EGORefreshTableHeaderView.m: 114";
rLen = 0;
- rLoc = 1240;
+ rLoc = 4671;
rType = 0;
- vrLen = 1486;
- vrLoc = 0;
+ vrLen = 1467;
+ vrLoc = 3948;
};
- 3ABDA77110D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D914C11188665002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 1D3623240D0F684500981E51 /* TableViewPullAppDelegate.h */;
- name = "TableViewPullAppDelegate.h: 25";
+ fRef = 3A3D90A7111881DE002B6585 /* RootViewController.m */;
+ name = "RootViewController.m: 137";
rLen = 0;
- rLoc = 1245;
+ rLoc = 3986;
rType = 0;
- vrLen = 1549;
- vrLoc = 0;
+ vrLen = 1919;
+ vrLoc = 5435;
};
- 3ABDA77210D18625003ABED5 /* PBXTextBookmark */ = {
+ 3A3D914D11188665002B6585 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 1D3623250D0F684500981E51 /* TableViewPullAppDelegate.m */;
- name = "TableViewPullAppDelegate.m: 18";
+ fRef = 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */;
+ name = "TableViewPullAppDelegate.m: 1";
rLen = 0;
- rLoc = 811;
+ rLoc = 0;
rType = 0;
- vrLen = 1539;
+ vrLen = 1928;
vrLoc = 0;
};
- 3ABDA77710D1862E003ABED5 /* PBXTextBookmark */ = {
+ 3A451E9110D176B300C10A50 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 3A2585541088E97000126784 /* whiteArrow.png */;
+ };
+ 3A451E9C10D176CB00C10A50 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3A2581531088BD8100126784 /* EGOTableViewPullRefresh.h */;
- name = "EGOTableViewPullRefresh.h: 26";
+ fRef = 3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */;
+ name = "EGORefreshTableHeaderView.h: 23";
rLen = 0;
- rLoc = 1245;
+ rLoc = 1503;
rType = 0;
- vrLen = 1567;
+ vrLen = 552;
vrLoc = 0;
};
- 3ABDA77810D1862E003ABED5 /* PBXTextBookmark */ = {
+ 3ABDA76A10D18625003ABED5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3ABDA77910D1862E003ABED5 /* EGORefreshTableHeaderView.m */;
+ fRef = 3ABDA76B10D18625003ABED5 /* NSArrayHelper.m */;
+ name = "NSArrayHelper.m: 17";
rLen = 0;
- rLoc = 9223372036854776897;
+ rLoc = 733;
rType = 0;
+ vrLen = 1661;
+ vrLoc = 0;
};
- 3ABDA77910D1862E003ABED5 /* EGORefreshTableHeaderView.m */ = {
+ 3ABDA76B10D18625003ABED5 /* NSArrayHelper.m */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.objc;
- name = EGORefreshTableHeaderView.m;
- path = /Users/codekeeper/EGOTableViewPullRefresh/EGOTableViewPullRefresh/Classes/EGORefreshTableHeaderView.m;
+ name = NSArrayHelper.m;
+ path = "/Users/codekeeper/Downloads/enormego-cocoa-helpers-842d0df/NSArray/NSArrayHelper.m";
sourceTree = "<absolute>";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {869, 2405}}";
- sepNavSelRange = "{1238, 0}";
- sepNavVisRange = "{0, 1638}";
- };
};
- 3ABDA77A10D1862E003ABED5 /* PBXTextBookmark */ = {
+ 3ABDA76D10D18625003ABED5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 3ABDA77B10D1862E003ABED5 /* EGORefreshTableHeaderView.m */;
+ fRef = 3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */;
name = "EGORefreshTableHeaderView.m: 26";
rLen = 0;
rLoc = 1238;
rType = 0;
- vrLen = 1638;
+ vrLen = 1636;
+ vrLoc = 3;
+ };
+ 3ABDA76E10D18625003ABED5 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */;
+ name = "EGORefreshTableHeaderView.h: 26";
+ rLen = 0;
+ rLoc = 1238;
+ rType = 0;
+ vrLen = 1484;
vrLoc = 0;
};
3ABDA77B10D1862E003ABED5 /* EGORefreshTableHeaderView.m */ = {
isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
name = EGORefreshTableHeaderView.m;
path = /Users/codekeeper/EGOTableViewPullRefresh/EGOTableViewPullRefresh/Classes/EGORefreshTableHeaderView.m;
sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {869, 2262}}";
+ sepNavSelRange = "{649, 0}";
+ sepNavVisRange = "{0, 1638}";
+ };
};
3ABDA77C10D1862E003ABED5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -391,14 +447,4 @@
vrLen = 2484;
vrLoc = 3169;
};
- 3ABDA77D10D1862E003ABED5 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */;
- name = "EGOTableViewPullRefresh.m: 86";
- rLen = 0;
- rLoc = 3373;
- rType = 0;
- vrLen = 2646;
- vrLoc = 399;
- };
}
View
98 Demo/TableViewPull/TableViewPull.xcodeproj/project.pbxproj
@@ -7,43 +7,40 @@
objects = {
/* Begin PBXBuildFile section */
- 1D3623260D0F684500981E51 /* TableViewPullAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* TableViewPullAppDelegate.m */; };
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */; };
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD735F0D9D9599002E5188 /* MainWindow.xib */; };
- 28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; };
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; };
- 3A2581551088BD8100126784 /* EGOTableViewPullRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */; };
- 3A25815E1088BDAC00126784 /* EGORefreshTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */; };
3A25816E1088BEE600126784 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A25816D1088BEE600126784 /* QuartzCore.framework */; };
3A2585551088E97000126784 /* blackArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 3A2585521088E97000126784 /* blackArrow.png */; };
3A2585561088E97000126784 /* blueArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 3A2585531088E97000126784 /* blueArrow.png */; };
3A2585571088E97000126784 /* whiteArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 3A2585541088E97000126784 /* whiteArrow.png */; };
+ 3A3D908E11187FE7002B6585 /* TableViewPullAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */; };
+ 3A3D909E11188064002B6585 /* EGORefreshTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3D909D11188064002B6585 /* EGORefreshTableHeaderView.m */; };
+ 3A3D90A8111881DE002B6585 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3D90A7111881DE002B6585 /* RootViewController.m */; };
+ 3A3D910311188495002B6585 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3D910211188495002B6585 /* main.m */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 1D3623240D0F684500981E51 /* TableViewPullAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewPullAppDelegate.h; sourceTree = "<group>"; };
- 1D3623250D0F684500981E51 /* TableViewPullAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewPullAppDelegate.m; sourceTree = "<group>"; };
1D6058910D05DD3D006BFB54 /* TableViewPull.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TableViewPull.app; sourceTree = BUILT_PRODUCTS_DIR; };
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 28A0AAE50D9B0CCF005BE974 /* TableViewPull_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewPull_Prefix.pch; sourceTree = "<group>"; };
28AD735F0D9D9599002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
- 28C286DF0D94DF7D0034E888 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = "<group>"; };
- 28C286E00D94DF7D0034E888 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = "<group>"; };
28F335F01007B36200424DE2 /* RootViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = "<group>"; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 3A2581531088BD8100126784 /* EGOTableViewPullRefresh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGOTableViewPullRefresh.h; sourceTree = "<group>"; };
- 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGOTableViewPullRefresh.m; sourceTree = "<group>"; };
- 3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGORefreshTableHeaderView.h; sourceTree = "<group>"; };
- 3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGORefreshTableHeaderView.m; sourceTree = "<group>"; };
3A25816D1088BEE600126784 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
3A2585521088E97000126784 /* blackArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blackArrow.png; sourceTree = "<group>"; };
3A2585531088E97000126784 /* blueArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blueArrow.png; sourceTree = "<group>"; };
3A2585541088E97000126784 /* whiteArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = whiteArrow.png; sourceTree = "<group>"; };
+ 3A3D908C11187FE7002B6585 /* TableViewPullAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewPullAppDelegate.h; sourceTree = "<group>"; };
+ 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewPullAppDelegate.m; sourceTree = "<group>"; };
+ 3A3D909C11188064002B6585 /* EGORefreshTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGORefreshTableHeaderView.h; sourceTree = "<group>"; };
+ 3A3D909D11188064002B6585 /* EGORefreshTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGORefreshTableHeaderView.m; sourceTree = "<group>"; };
+ 3A3D90A6111881DE002B6585 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = "<group>"; };
+ 3A3D90A7111881DE002B6585 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = "<group>"; };
+ 3A3D90C411188297002B6585 /* TableViewPull_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TableViewPull_Prefix.pch; path = ../TableViewPull_Prefix.pch; sourceTree = "<group>"; };
+ 3A3D910211188495002B6585 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../main.m; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* TableViewPull-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "TableViewPull-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -65,12 +62,9 @@
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
- 3A2586051088ED7700126784 /* EGOTableViewPullRefresh */,
- 3A25815A1088BDAC00126784 /* RefreshTableHeaderView */,
- 28C286DF0D94DF7D0034E888 /* RootViewController.h */,
- 28C286E00D94DF7D0034E888 /* RootViewController.m */,
- 1D3623240D0F684500981E51 /* TableViewPullAppDelegate.h */,
- 1D3623250D0F684500981E51 /* TableViewPullAppDelegate.m */,
+ 3A3D90931118801F002B6585 /* Controller */,
+ 3A3D909211188012002B6585 /* View */,
+ 3A3D908411187FAD002B6585 /* Delegate */,
);
path = Classes;
sourceTree = "<group>";
@@ -99,10 +93,10 @@
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
- 28A0AAE50D9B0CCF005BE974 /* TableViewPull_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
+ 3A3D910211188495002B6585 /* main.m */,
+ 3A3D90C411188297002B6585 /* TableViewPull_Prefix.pch */,
);
- name = "Other Sources";
+ path = "Other Sources";
sourceTree = "<group>";
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
@@ -115,7 +109,7 @@
28AD735F0D9D9599002E5188 /* MainWindow.xib */,
8D1107310486CEB800E47090 /* TableViewPull-Info.plist */,
);
- name = Resources;
+ path = Resources;
sourceTree = "<group>";
};
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
@@ -128,22 +122,47 @@
name = Frameworks;
sourceTree = "<group>";
};
- 3A25815A1088BDAC00126784 /* RefreshTableHeaderView */ = {
+ 3A3D908411187FAD002B6585 /* Delegate */ = {
isa = PBXGroup;
children = (
- 3A25815B1088BDAC00126784 /* EGORefreshTableHeaderView.h */,
- 3A25815C1088BDAC00126784 /* EGORefreshTableHeaderView.m */,
+ 3A3D908C11187FE7002B6585 /* TableViewPullAppDelegate.h */,
+ 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */,
);
- name = RefreshTableHeaderView;
+ path = Delegate;
sourceTree = "<group>";
};
- 3A2586051088ED7700126784 /* EGOTableViewPullRefresh */ = {
+ 3A3D909211188012002B6585 /* View */ = {
isa = PBXGroup;
children = (
- 3A2581531088BD8100126784 /* EGOTableViewPullRefresh.h */,
- 3A2581541088BD8100126784 /* EGOTableViewPullRefresh.m */,
+ 3A3D909B11188064002B6585 /* RefreshTableHeaderView */,
);
- name = EGOTableViewPullRefresh;
+ path = View;
+ sourceTree = "<group>";
+ };
+ 3A3D90931118801F002B6585 /* Controller */ = {
+ isa = PBXGroup;
+ children = (
+ 3A3D90A5111881DE002B6585 /* RootViewController */,
+ );
+ path = Controller;
+ sourceTree = "<group>";
+ };
+ 3A3D909B11188064002B6585 /* RefreshTableHeaderView */ = {
+ isa = PBXGroup;
+ children = (
+ 3A3D909C11188064002B6585 /* EGORefreshTableHeaderView.h */,
+ 3A3D909D11188064002B6585 /* EGORefreshTableHeaderView.m */,
+ );
+ path = RefreshTableHeaderView;
+ sourceTree = "<group>";
+ };
+ 3A3D90A5111881DE002B6585 /* RootViewController */ = {
+ isa = PBXGroup;
+ children = (
+ 3A3D90A6111881DE002B6585 /* RootViewController.h */,
+ 3A3D90A7111881DE002B6585 /* RootViewController.m */,
+ );
+ path = RootViewController;
sourceTree = "<group>";
};
/* End PBXGroup section */
@@ -210,11 +229,10 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
- 1D3623260D0F684500981E51 /* TableViewPullAppDelegate.m in Sources */,
- 28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */,
- 3A2581551088BD8100126784 /* EGOTableViewPullRefresh.m in Sources */,
- 3A25815E1088BDAC00126784 /* EGORefreshTableHeaderView.m in Sources */,
+ 3A3D908E11187FE7002B6585 /* TableViewPullAppDelegate.m in Sources */,
+ 3A3D909E11188064002B6585 /* EGORefreshTableHeaderView.m in Sources */,
+ 3A3D90A8111881DE002B6585 /* RootViewController.m in Sources */,
+ 3A3D910311188495002B6585 /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -230,7 +248,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = TableViewPull_Prefix.pch;
- INFOPLIST_FILE = "TableViewPull-Info.plist";
+ INFOPLIST_FILE = "Resources/TableViewPull-Info.plist";
PRODUCT_NAME = TableViewPull;
};
name = Debug;
@@ -242,7 +260,7 @@
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = TableViewPull_Prefix.pch;
- INFOPLIST_FILE = "TableViewPull-Info.plist";
+ INFOPLIST_FILE = "Resources/TableViewPull-Info.plist";
PRODUCT_NAME = TableViewPull;
};
name = Release;
View
25 ...Refresh/Classes/EGOTableViewPullRefresh.h → ...h/Classes/Controller/RootViewController.h
@@ -1,9 +1,9 @@
//
-// EGOTableViewPullRefresh.h
+// RootViewController.h
// TableViewPull
//
// Created by Devin Doty on 10/16/09October16.
-// Copyright 2009 enormego. All rights reserved.
+// Copyright enormego 2009. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -24,22 +24,17 @@
// THE SOFTWARE.
//
-#import <UIKit/UIKit.h>
-#import <Foundation/Foundation.h>
-
@class EGORefreshTableHeaderView;
-
-@interface EGOTableViewPullRefresh : UITableView <UITableViewDelegate>{
-
+@interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>{
EGORefreshTableHeaderView *refreshHeaderView;
- BOOL reloading; // should be pulled from datasource
-
+
+ // Reloading should really be your tableviews model class
+ // Putting it here for demo purposes
+ BOOL _reloading;
}
-- (void)dataSourceDidFinishLoadingNewData;
-@end
-@protocol UITableViewReloadDataSource
+@property(assign,getter=isReloading) BOOL reloading;
+
- (void)reloadTableViewDataSource;
+- (void)doneLoadingTableViewData;
@end
-
-
View
244 EGOTableViewPullRefresh/Classes/Controller/RootViewController.m
@@ -0,0 +1,244 @@
+//
+// RootViewController.m
+// TableViewPull
+//
+// Created by Devin Doty on 10/16/09October16.
+// Copyright enormego 2009. All rights reserved.
+//
+// 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:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// 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.
+//
+
+#import "RootViewController.h"
+#import "EGORefreshTableHeaderView.h"
+
+#define kReleaseToReloadStatus 0
+#define kPullToReloadStatus 1
+#define kLoadingStatus 2
+
+
+@interface RootViewController (Private)
+
+- (void)dataSourceDidFinishLoadingNewData;
+
+@end
+
+
+@implementation RootViewController
+
+@synthesize reloading=_reloading;
+
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ if (refreshHeaderView == nil) {
+ refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, 320.0f, self.tableView.bounds.size.height)];
+ refreshHeaderView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:231.0/255.0 blue:237.0/255.0 alpha:1.0];
+ [self.tableView addSubview:refreshHeaderView];
+ self.tableView.showsVerticalScrollIndicator = YES;
+ [refreshHeaderView release];
+ }
+}
+
+
+/*
+- (void)viewWillAppear:(BOOL)animated {
+ [super viewWillAppear:animated];
+}
+*/
+/*
+- (void)viewDidAppear:(BOOL)animated {
+ [super viewDidAppear:animated];
+}
+*/
+/*
+- (void)viewWillDisappear:(BOOL)animated {
+ [super viewWillDisappear:animated];
+}
+*/
+/*
+- (void)viewDidDisappear:(BOOL)animated {
+ [super viewDidDisappear:animated];
+}
+*/
+
+
+ // Override to allow orientations other than the default portrait orientation.
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ // Return YES for supported orientations.
+ return YES;
+}
+
+
+- (void)didReceiveMemoryWarning {
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+
+ // Release any cached data, images, etc that aren't in use.
+}
+
+- (void)viewDidUnload {
+ refreshHeaderView=nil;
+}
+
+
+#pragma mark Table view methods
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ return 1;
+}
+
+
+// Customize the number of rows in the table view.
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ return 0;
+}
+
+
+// Customize the appearance of table view cells.
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ static NSString *CellIdentifier = @"Cell";
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ }
+
+ // Configure the cell.
+
+ return cell;
+}
+
+- (void)reloadTableViewDataSource{
+ // should be calling your tableviews model to reload
+ // put here just for demo
+ [self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
+}
+
+
+- (void)doneLoadingTableViewData{
+ // model should call this when its done loading
+ [self dataSourceDidFinishLoadingNewData];
+}
+
+
+/*
+// Override to support row selection in the table view.
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ // Navigation logic may go here -- for example, create and push another view controller.
+ // AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];
+ // [self.navigationController pushViewController:anotherViewController animated:YES];
+ // [anotherViewController release];
+}
+*/
+
+
+/*
+// Override to support conditional editing of the table view.
+- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
+ // Return NO if you do not want the specified item to be editable.
+ return YES;
+}
+*/
+
+
+/*
+// Override to support editing the table view.
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ if (editingStyle == UITableViewCellEditingStyleDelete) {
+ // Delete the row from the data source.
+ [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ }
+ else if (editingStyle == UITableViewCellEditingStyleInsert) {
+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
+ }
+}
+*/
+
+
+/*
+// Override to support rearranging the table view.
+- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
+}
+*/
+
+
+/*
+// Override to support conditional rearranging of the table view.
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
+ // Return NO if you do not want the item to be re-orderable.
+ return YES;
+}
+*/
+
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
+
+ if (scrollView.isDragging) {
+ if (refreshHeaderView.isFlipped && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && !_reloading) {
+ [refreshHeaderView flipImageAnimated:YES];
+ [refreshHeaderView setStatus:kPullToReloadStatus];
+ } else if (!refreshHeaderView.isFlipped && scrollView.contentOffset.y < -65.0f && !_reloading) {
+ [refreshHeaderView flipImageAnimated:YES];
+ [refreshHeaderView setStatus:kReleaseToReloadStatus];
+ }
+ }
+}
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
+
+ if (scrollView.contentOffset.y <= - 65.0f && !_reloading) {
+ _reloading = YES;
+ [self reloadTableViewDataSource];
+ [refreshHeaderView toggleActivityView];
+ [UIView beginAnimations:nil context:NULL];
+ [UIView setAnimationDuration:0.2];
+ self.tableView.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f);
+ [UIView commitAnimations];
+ }
+}
+
+- (void)dataSourceDidFinishLoadingNewData{
+
+ _reloading = NO;
+
+ [UIView beginAnimations:nil context:NULL];
+ [UIView setAnimationDuration:.3];
+ [self.tableView setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)];
+ [UIView commitAnimations];
+
+ [refreshHeaderView flipImageAnimated:NO]; // reset view
+ [refreshHeaderView toggleActivityView]; // reset view
+ [refreshHeaderView setCurrentDate]; // should check if data reload was successful
+}
+
+#pragma mark -
+#pragma mark Dealloc
+
+- (void)dealloc {
+ refreshHeaderView = nil;
+ [super dealloc];
+}
+
+
+@end
+
View
96 EGOTableViewPullRefresh/Classes/EGOTableViewPullRefresh.m
@@ -1,96 +0,0 @@
-//
-// EGOTableViewPullRefresh.m
-// TableViewPull
-//
-// Created by Devin Doty on 10/16/09October16.
-// Copyright 2009 enormego. All rights reserved.
-//
-// 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:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// 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.
-//
-
-#import "EGOTableViewPullRefresh.h"
-#import "EGORefreshTableHeaderView.h"
-
-#define kReleaseToReloadStatus 0
-#define kPullToReloadStatus 1
-#define kLoadingStatus 2
-
-@implementation EGOTableViewPullRefresh
-
-- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style{
-
- if (self = [super initWithFrame:frame style:style]){
- refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.bounds.size.height, 320.0f, self.bounds.size.height)];
- refreshHeaderView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:231.0/255.0 blue:237.0/255.0 alpha:1.0];
- [self addSubview:refreshHeaderView];
- self.showsVerticalScrollIndicator = YES;
- [refreshHeaderView release];
- }
- return self;
-}
-
-- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
-
- if (scrollView.isDragging) {
- if (refreshHeaderView.isFlipped && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && !reloading) {
- [refreshHeaderView flipImageAnimated:YES];
- [refreshHeaderView setStatus:kPullToReloadStatus];
- } else if (!refreshHeaderView.isFlipped && scrollView.contentOffset.y < -65.0f && !reloading) {
- [refreshHeaderView flipImageAnimated:YES];
- [refreshHeaderView setStatus:kReleaseToReloadStatus];
- }
- }
-}
-
-- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
-
- if (scrollView.contentOffset.y <= - 65.0f && !reloading) {
- if([self.dataSource respondsToSelector:@selector(reloadTableViewDataSource)]){
- reloading = YES;
- [(id)self.dataSource reloadTableViewDataSource];
- [refreshHeaderView toggleActivityView];
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:0.2];
- self.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f);
- [UIView commitAnimations];
- }
- }
-}
-
-- (void)dataSourceDidFinishLoadingNewData{
-
- reloading = NO;
-
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:.3];
- [self setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)];
- [UIView commitAnimations];
-
- [refreshHeaderView flipImageAnimated:NO]; // reset view
- [refreshHeaderView toggleActivityView]; // reset view
- [refreshHeaderView setCurrentDate]; // should check if data reload was successful
-}
-
-- (void)dealloc {
- refreshHeaderView = nil;
- [super dealloc];
-}
-
-
-@end
View
0 ...wPull/Classes/EGORefreshTableHeaderView.h → .../Classes/View/EGORefreshTableHeaderView.h
File renamed without changes.
View
21 ...fresh/Classes/EGORefreshTableHeaderView.m → .../Classes/View/EGORefreshTableHeaderView.m
@@ -61,7 +61,7 @@ - (id)initWithFrame:(CGRect)frame {
[self setCurrentDate];
}
- statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, frame.size.height - 48.0f, 320.0f, 20.0f)];
+ statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, frame.size.height - 48.0f, self.frame.size.width, 20.0f)];
statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth;
statusLabel.font = [UIFont boldSystemFontOfSize:13.0f];
statusLabel.textColor = TEXT_COLOR;
@@ -104,15 +104,18 @@ - (void)drawRect:(CGRect)rect{
- (void)flipImageAnimated:(BOOL)animated{
if (!animated) {
- [arrowImage removeAllAnimations];
+ [CATransaction begin];
+ [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
+ arrowImage.transform = CATransform3DIdentity;
+ [CATransaction commit];
} else {
- CABasicAnimation *animation = [CABasicAnimation animation];
- animation.fromValue = isFlipped ? [NSValue valueWithCATransform3D:CATransform3DMakeRotation((M_PI / 180.0) * 179.9, 0.0f, 0.0f, 1.0f)] : [NSValue valueWithCATransform3D:CATransform3DIdentity];
- animation.toValue = isFlipped ? [NSValue valueWithCATransform3D:CATransform3DIdentity] : [NSValue valueWithCATransform3D:CATransform3DMakeRotation((M_PI / 180.0) * 179.9, 0.0f, 0.0f, 1.0f)];
- animation.duration = animated ? .18 : 0.0;
- animation.removedOnCompletion = NO;
- animation.fillMode = kCAFillModeForwards;
- [arrowImage addAnimation:animation forKey:@"transform"];
+ [CATransaction begin];
+ [CATransaction setAnimationDuration:animated ? .18 : 0.0];
+
+ CATransform3D transform = isFlipped ? CATransform3DIdentity : CATransform3DMakeRotation((M_PI / 180.0) * 180.0f, 0.0f, 0.0f, 1.0f);
+ arrowImage.transform = transform;
+
+ [CATransaction commit];
}
isFlipped = !isFlipped;

0 comments on commit 17e8147

Please sign in to comment.