diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index c5f4cf7..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/Demo/.DS_Store b/Demo/.DS_Store deleted file mode 100644 index eda31c3..0000000 Binary files a/Demo/.DS_Store and /dev/null differ diff --git a/Demo/TableViewPull/.DS_Store b/Demo/TableViewPull/.DS_Store deleted file mode 100644 index b17ff1b..0000000 Binary files a/Demo/TableViewPull/.DS_Store and /dev/null differ diff --git a/Demo/TableViewPull/Classes/View/RefreshTableHeaderView/EGORefreshTableHeaderView.m b/Demo/TableViewPull/Classes/View/RefreshTableHeaderView/EGORefreshTableHeaderView.m index 0def219..9e9ae24 100755 --- a/Demo/TableViewPull/Classes/View/RefreshTableHeaderView/EGORefreshTableHeaderView.m +++ b/Demo/TableViewPull/Classes/View/RefreshTableHeaderView/EGORefreshTableHeaderView.m @@ -108,15 +108,17 @@ - (void)refreshLastUpdatedDate { if ([_delegate respondsToSelector:@selector(egoRefreshTableHeaderDataSourceLastUpdated:)]) { NSDate *date = [_delegate egoRefreshTableHeaderDataSourceLastUpdated:self]; - - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - [formatter setAMSymbol:@"AM"]; - [formatter setPMSymbol:@"PM"]; - [formatter setDateFormat:@"MM/dd/yyyy hh:mm:a"]; - _lastUpdatedLabel.text = [NSString stringWithFormat:@"Last Updated: %@", [formatter stringFromDate:date]]; + + [NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault]; + NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; + [dateFormatter setDateStyle:NSDateFormatterShortStyle]; + [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; + + NSString *lastUpdate = NSLocalizedStringFromTable(@"Last Updated:", @"EGORefreshLocalizable", nil); + _lastUpdatedLabel.text = [NSString stringWithFormat:@"%@ %@", lastUpdate, [dateFormatter stringFromDate:date]]; + [[NSUserDefaults standardUserDefaults] setObject:_lastUpdatedLabel.text forKey:@"EGORefreshTableView_LastRefresh"]; [[NSUserDefaults standardUserDefaults] synchronize]; - [formatter release]; } else { @@ -131,7 +133,7 @@ - (void)setState:(EGOPullRefreshState)aState{ switch (aState) { case EGOOPullRefreshPulling: - _statusLabel.text = NSLocalizedString(@"Release to refresh...", @"Release to refresh status"); + _statusLabel.text = NSLocalizedStringFromTable(@"Release to refresh...", @"EGORefreshLocalizable", @"Release to refresh status"); [CATransaction begin]; [CATransaction setAnimationDuration:FLIP_ANIMATION_DURATION]; _arrowImage.transform = CATransform3DMakeRotation((M_PI / 180.0) * 180.0f, 0.0f, 0.0f, 1.0f); @@ -147,7 +149,7 @@ - (void)setState:(EGOPullRefreshState)aState{ [CATransaction commit]; } - _statusLabel.text = NSLocalizedString(@"Pull down to refresh...", @"Pull down to refresh status"); + _statusLabel.text = NSLocalizedStringFromTable(@"Pull down to refresh...", @"EGORefreshLocalizable", @"Pull down to refresh status"); [_activityView stopAnimating]; [CATransaction begin]; [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; @@ -160,7 +162,7 @@ - (void)setState:(EGOPullRefreshState)aState{ break; case EGOOPullRefreshLoading: - _statusLabel.text = NSLocalizedString(@"Loading...", @"Loading Status"); + _statusLabel.text = NSLocalizedStringFromTable(@"Loading...", @"EGORefreshLocalizable", @"Loading Status"); [_activityView startAnimating]; [CATransaction begin]; [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; diff --git a/Demo/TableViewPull/Resources/MainWindow.xib b/Demo/TableViewPull/EgoTableViewResources.bundle/MainWindow.xib similarity index 100% rename from Demo/TableViewPull/Resources/MainWindow.xib rename to Demo/TableViewPull/EgoTableViewResources.bundle/MainWindow.xib diff --git a/Demo/TableViewPull/Resources/RootViewController.xib b/Demo/TableViewPull/EgoTableViewResources.bundle/RootViewController.xib similarity index 100% rename from Demo/TableViewPull/Resources/RootViewController.xib rename to Demo/TableViewPull/EgoTableViewResources.bundle/RootViewController.xib diff --git a/Demo/TableViewPull/Resources/TableViewPull-Info.plist b/Demo/TableViewPull/EgoTableViewResources.bundle/TableViewPull-Info.plist similarity index 100% rename from Demo/TableViewPull/Resources/TableViewPull-Info.plist rename to Demo/TableViewPull/EgoTableViewResources.bundle/TableViewPull-Info.plist diff --git a/Demo/TableViewPull/Resources/blackArrow.png b/Demo/TableViewPull/EgoTableViewResources.bundle/blackArrow.png similarity index 100% rename from Demo/TableViewPull/Resources/blackArrow.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/blackArrow.png diff --git a/Demo/TableViewPull/Resources/blackArrow@2x.png b/Demo/TableViewPull/EgoTableViewResources.bundle/blackArrow@2x.png similarity index 100% rename from Demo/TableViewPull/Resources/blackArrow@2x.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/blackArrow@2x.png diff --git a/Demo/TableViewPull/Resources/blueArrow.png b/Demo/TableViewPull/EgoTableViewResources.bundle/blueArrow.png similarity index 100% rename from Demo/TableViewPull/Resources/blueArrow.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/blueArrow.png diff --git a/Demo/TableViewPull/Resources/blueArrow@2x.png b/Demo/TableViewPull/EgoTableViewResources.bundle/blueArrow@2x.png similarity index 100% rename from Demo/TableViewPull/Resources/blueArrow@2x.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/blueArrow@2x.png diff --git a/Demo/TableViewPull/EgoTableViewResources.bundle/de.lproj/EGORefreshLocalizable.strings b/Demo/TableViewPull/EgoTableViewResources.bundle/de.lproj/EGORefreshLocalizable.strings new file mode 100644 index 0000000..8a83c6d --- /dev/null +++ b/Demo/TableViewPull/EgoTableViewResources.bundle/de.lproj/EGORefreshLocalizable.strings @@ -0,0 +1,10 @@ +/* + LocalizedString.strings + + Created by Marius Landwehr on 19.03.13. + +*/ +"Release to refresh..." = "Zum Aktualisieren loslassen…"; +"Pull down to refresh..." = "Zum Aktualisieren herunterziehen…"; +"Loading..." = "Lädt…"; +"Last Updated:" = "Zuletzt aktualisiert:"; \ No newline at end of file diff --git a/Demo/TableViewPull/EgoTableViewResources.bundle/en.lproj/EGORefreshLocalizable.strings b/Demo/TableViewPull/EgoTableViewResources.bundle/en.lproj/EGORefreshLocalizable.strings new file mode 100644 index 0000000..9f308d6 --- /dev/null +++ b/Demo/TableViewPull/EgoTableViewResources.bundle/en.lproj/EGORefreshLocalizable.strings @@ -0,0 +1,10 @@ +/* + LocalizedString.strings + + Created by Marius Landwehr on 19.03.13. + +*/ +"Release to refresh..." = "Release to refresh…"; +"Pull down to refresh..." = "Pull down to refresh…"; +"Loading..." = "Loading…"; +"Last Updated:" = "Last Updated:"; \ No newline at end of file diff --git a/Demo/TableViewPull/Resources/grayArrow.png b/Demo/TableViewPull/EgoTableViewResources.bundle/grayArrow.png similarity index 100% rename from Demo/TableViewPull/Resources/grayArrow.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/grayArrow.png diff --git a/Demo/TableViewPull/Resources/grayArrow@2x.png b/Demo/TableViewPull/EgoTableViewResources.bundle/grayArrow@2x.png similarity index 100% rename from Demo/TableViewPull/Resources/grayArrow@2x.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/grayArrow@2x.png diff --git a/Demo/TableViewPull/Resources/whiteArrow.png b/Demo/TableViewPull/EgoTableViewResources.bundle/whiteArrow.png similarity index 100% rename from Demo/TableViewPull/Resources/whiteArrow.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/whiteArrow.png diff --git a/Demo/TableViewPull/Resources/whiteArrow@2x.png b/Demo/TableViewPull/EgoTableViewResources.bundle/whiteArrow@2x.png similarity index 100% rename from Demo/TableViewPull/Resources/whiteArrow@2x.png rename to Demo/TableViewPull/EgoTableViewResources.bundle/whiteArrow@2x.png diff --git a/Demo/TableViewPull/TableViewPull.xcodeproj/project.pbxproj b/Demo/TableViewPull/TableViewPull.xcodeproj/project.pbxproj index f4b157e..ec36513 100755 --- a/Demo/TableViewPull/TableViewPull.xcodeproj/project.pbxproj +++ b/Demo/TableViewPull/TableViewPull.xcodeproj/project.pbxproj @@ -10,21 +10,12 @@ 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 */; }; - 28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; }; - 2CCD9B571243CB9F006B1864 /* grayArrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CCD9B561243CB9F006B1864 /* grayArrow@2x.png */; }; - 2CCD9B5C1243CDC2006B1864 /* blueArrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CCD9B5A1243CDC2006B1864 /* blueArrow@2x.png */; }; - 2CCD9B5D1243CDC2006B1864 /* blackArrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CCD9B5B1243CDC2006B1864 /* blackArrow@2x.png */; }; - 2CCD9B5F1243CE1A006B1864 /* grayArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CCD9B5E1243CE1A006B1864 /* grayArrow.png */; }; - 2CCD9B611243CE22006B1864 /* whiteArrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CCD9B601243CE22006B1864 /* whiteArrow@2x.png */; }; 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 */; }; + 6D98C95016F9A9080078AAAF /* EgoTableViewResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6D98C94F16F9A9080078AAAF /* EgoTableViewResources.bundle */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -32,17 +23,7 @@ 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; }; - 28AD735F0D9D9599002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; - 28F335F01007B36200424DE2 /* RootViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = ""; }; - 2CCD9B561243CB9F006B1864 /* grayArrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "grayArrow@2x.png"; sourceTree = ""; }; - 2CCD9B5A1243CDC2006B1864 /* blueArrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "blueArrow@2x.png"; sourceTree = ""; }; - 2CCD9B5B1243CDC2006B1864 /* blackArrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "blackArrow@2x.png"; sourceTree = ""; }; - 2CCD9B5E1243CE1A006B1864 /* grayArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = grayArrow.png; sourceTree = ""; }; - 2CCD9B601243CE22006B1864 /* whiteArrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "whiteArrow@2x.png"; sourceTree = ""; }; 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 = ""; }; - 3A2585531088E97000126784 /* blueArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blueArrow.png; sourceTree = ""; }; - 3A2585541088E97000126784 /* whiteArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = whiteArrow.png; sourceTree = ""; }; 3A3D908C11187FE7002B6585 /* TableViewPullAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewPullAppDelegate.h; sourceTree = ""; }; 3A3D908D11187FE7002B6585 /* TableViewPullAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewPullAppDelegate.m; sourceTree = ""; }; 3A3D909C11188064002B6585 /* EGORefreshTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGORefreshTableHeaderView.h; sourceTree = ""; }; @@ -51,7 +32,7 @@ 3A3D90A7111881DE002B6585 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; }; 3A3D90C411188297002B6585 /* TableViewPull_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewPull_Prefix.pch; sourceTree = ""; }; 3A3D910211188495002B6585 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 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 = ""; }; + 6D98C94F16F9A9080078AAAF /* EgoTableViewResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = EgoTableViewResources.bundle; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -103,17 +84,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( - 2CCD9B5E1243CE1A006B1864 /* grayArrow.png */, - 2CCD9B561243CB9F006B1864 /* grayArrow@2x.png */, - 3A2585521088E97000126784 /* blackArrow.png */, - 2CCD9B5B1243CDC2006B1864 /* blackArrow@2x.png */, - 3A2585531088E97000126784 /* blueArrow.png */, - 2CCD9B5A1243CDC2006B1864 /* blueArrow@2x.png */, - 3A2585541088E97000126784 /* whiteArrow.png */, - 2CCD9B601243CE22006B1864 /* whiteArrow@2x.png */, - 28F335F01007B36200424DE2 /* RootViewController.xib */, - 28AD735F0D9D9599002E5188 /* MainWindow.xib */, - 8D1107310486CEB800E47090 /* TableViewPull-Info.plist */, + 6D98C94F16F9A9080078AAAF /* EgoTableViewResources.bundle */, ); path = Resources; sourceTree = ""; @@ -230,16 +201,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */, - 28F335F11007B36200424DE2 /* RootViewController.xib in Resources */, - 3A2585551088E97000126784 /* blackArrow.png in Resources */, - 3A2585561088E97000126784 /* blueArrow.png in Resources */, - 3A2585571088E97000126784 /* whiteArrow.png in Resources */, - 2CCD9B571243CB9F006B1864 /* grayArrow@2x.png in Resources */, - 2CCD9B5C1243CDC2006B1864 /* blueArrow@2x.png in Resources */, - 2CCD9B5D1243CDC2006B1864 /* blackArrow@2x.png in Resources */, - 2CCD9B5F1243CE1A006B1864 /* grayArrow.png in Resources */, - 2CCD9B611243CE22006B1864 /* whiteArrow@2x.png in Resources */, + 6D98C95016F9A9080078AAAF /* EgoTableViewResources.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -269,7 +231,7 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = TableViewPull_Prefix.pch; - INFOPLIST_FILE = "Resources/TableViewPull-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/EgoTableViewResources.bundle/TableViewPull-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 3.0; PRODUCT_NAME = TableViewPull; TARGETED_DEVICE_FAMILY = "1,2"; @@ -283,7 +245,7 @@ COPY_PHASE_STRIP = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = TableViewPull_Prefix.pch; - INFOPLIST_FILE = "Resources/TableViewPull-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/EgoTableViewResources.bundle/TableViewPull-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 3.0; PRODUCT_NAME = TableViewPull; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/EGOTableViewPullRefresh.podspec b/EGOTableViewPullRefresh.podspec new file mode 100644 index 0000000..9cac2da --- /dev/null +++ b/EGOTableViewPullRefresh.podspec @@ -0,0 +1,16 @@ +Pod::Spec.new do |s| + s.name = 'EGOTableViewPullRefresh' + s.version = '0.1.1' + s.platform = :ios + s.license = 'MIT' + s.summary = 'A similar control to the pull down to refresh control created by atebits in Tweetie 2.' + s.homepage = 'https://github.com/enormego/EGOTableViewPullRefresh' + s.author = { 'Devin Doty' => 'devin.r.doty@gmail.com' } + s.source = { :git => 'https://github.com/basecom/EGOTableViewPullRefresh.git', + :tag => '0.1.1' } + + s.source_files = 'EGOTableViewPullRefresh/Classes/View/*.{h,m}' + s.resources = 'EGOTableViewPullRefresh/EgoTableViewResources.bundle' + + s.framework = 'QuartzCore' +end diff --git a/EGOTableViewPullRefresh/.DS_Store b/EGOTableViewPullRefresh/.DS_Store deleted file mode 100644 index ff5a2b0..0000000 Binary files a/EGOTableViewPullRefresh/.DS_Store and /dev/null differ diff --git a/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.h b/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.h index 0ec72f0..82077db 100755 --- a/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.h +++ b/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.h @@ -49,8 +49,6 @@ typedef enum{ @property(nonatomic,assign) id delegate; -- (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UIColor *)textColor; - - (void)refreshLastUpdatedDate; - (void)egoRefreshScrollViewDidScroll:(UIScrollView *)scrollView; - (void)egoRefreshScrollViewDidEndDragging:(UIScrollView *)scrollView; diff --git a/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.m b/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.m index 56b345b..4e95ebc 100755 --- a/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.m +++ b/EGOTableViewPullRefresh/Classes/View/EGORefreshTableHeaderView.m @@ -40,8 +40,8 @@ @implementation EGORefreshTableHeaderView @synthesize delegate=_delegate; -- (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UIColor *)textColor { - if((self = [super initWithFrame:frame])) { +- (id)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { self.autoresizingMask = UIViewAutoresizingFlexibleWidth; self.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:231.0/255.0 blue:237.0/255.0 alpha:1.0]; @@ -49,7 +49,7 @@ - (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UI UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, frame.size.height - 30.0f, self.frame.size.width, 20.0f)]; label.autoresizingMask = UIViewAutoresizingFlexibleWidth; label.font = [UIFont systemFontOfSize:12.0f]; - label.textColor = textColor; + label.textColor = TEXT_COLOR; label.shadowColor = [UIColor colorWithWhite:0.9f alpha:1.0f]; label.shadowOffset = CGSizeMake(0.0f, 1.0f); label.backgroundColor = [UIColor clearColor]; @@ -61,7 +61,7 @@ - (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UI label = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, frame.size.height - 48.0f, self.frame.size.width, 20.0f)]; label.autoresizingMask = UIViewAutoresizingFlexibleWidth; label.font = [UIFont boldSystemFontOfSize:13.0f]; - label.textColor = textColor; + label.textColor = TEXT_COLOR; label.shadowColor = [UIColor colorWithWhite:0.9f alpha:1.0f]; label.shadowOffset = CGSizeMake(0.0f, 1.0f); label.backgroundColor = [UIColor clearColor]; @@ -73,7 +73,7 @@ - (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UI CALayer *layer = [CALayer layer]; layer.frame = CGRectMake(25.0f, frame.size.height - 65.0f, 30.0f, 55.0f); layer.contentsGravity = kCAGravityResizeAspect; - layer.contents = (id)[UIImage imageNamed:arrow].CGImage; + layer.contents = (id)[UIImage imageNamed:@"EgoTableViewResources.bundle/blueArrow.png"].CGImage; #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000 if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { @@ -99,9 +99,6 @@ - (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UI } -- (id)initWithFrame:(CGRect)frame { - return [self initWithFrame:frame arrowImageName:@"blueArrow.png" textColor:TEXT_COLOR]; -} #pragma mark - #pragma mark Setters @@ -111,13 +108,15 @@ - (void)refreshLastUpdatedDate { if ([_delegate respondsToSelector:@selector(egoRefreshTableHeaderDataSourceLastUpdated:)]) { NSDate *date = [_delegate egoRefreshTableHeaderDataSourceLastUpdated:self]; - - [NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault]; + + [NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault]; NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; - _lastUpdatedLabel.text = [NSString stringWithFormat:@"Last Updated: %@", [dateFormatter stringFromDate:date]]; + NSString *lastUpdate = NSLocalizedStringFromTableInBundle(@"Last Updated:", @"EGORefreshLocalizable", EGORefreshTableHeaderViewBundle(), nil); + _lastUpdatedLabel.text = [NSString stringWithFormat:@"%@ %@", lastUpdate, [dateFormatter stringFromDate:date]]; + [[NSUserDefaults standardUserDefaults] setObject:_lastUpdatedLabel.text forKey:@"EGORefreshTableView_LastRefresh"]; [[NSUserDefaults standardUserDefaults] synchronize]; @@ -134,7 +133,7 @@ - (void)setState:(EGOPullRefreshState)aState{ switch (aState) { case EGOOPullRefreshPulling: - _statusLabel.text = NSLocalizedString(@"Release to refresh...", @"Release to refresh status"); + _statusLabel.text = NSLocalizedStringFromTableInBundle(@"Release to refresh...", @"EGORefreshLocalizable", EGORefreshTableHeaderViewBundle(), @"Release to refresh status"); [CATransaction begin]; [CATransaction setAnimationDuration:FLIP_ANIMATION_DURATION]; _arrowImage.transform = CATransform3DMakeRotation((M_PI / 180.0) * 180.0f, 0.0f, 0.0f, 1.0f); @@ -150,7 +149,7 @@ - (void)setState:(EGOPullRefreshState)aState{ [CATransaction commit]; } - _statusLabel.text = NSLocalizedString(@"Pull down to refresh...", @"Pull down to refresh status"); + _statusLabel.text = NSLocalizedStringFromTableInBundle(@"Pull down to refresh...", @"EGORefreshLocalizable", EGORefreshTableHeaderViewBundle(), @"Pull down to refresh status"); [_activityView stopAnimating]; [CATransaction begin]; [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; @@ -163,7 +162,7 @@ - (void)setState:(EGOPullRefreshState)aState{ break; case EGOOPullRefreshLoading: - _statusLabel.text = NSLocalizedString(@"Loading...", @"Loading Status"); + _statusLabel.text = NSLocalizedStringFromTableInBundle(@"Loading...", @"EGORefreshLocalizable", EGORefreshTableHeaderViewBundle(), @"Loading Status"); [_activityView startAnimating]; [CATransaction begin]; [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; @@ -245,6 +244,16 @@ - (void)egoRefreshScrollViewDataSourceDidFinishedLoading:(UIScrollView *)scrollV } +NSBundle *EGORefreshTableHeaderViewBundle(void) { + static NSBundle* bundle = nil; + if (!bundle) { + NSString* path = [[[NSBundle mainBundle] resourcePath] + stringByAppendingPathComponent:@"EgoTableViewResources.bundle"]; + bundle = [[NSBundle bundleWithPath:path] retain]; + } + return bundle; +} + #pragma mark - #pragma mark Dealloc diff --git a/EGOTableViewPullRefresh/EgoTableViewResources.bundle/MainWindow.xib b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/MainWindow.xib new file mode 100755 index 0000000..f42b159 --- /dev/null +++ b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/MainWindow.xib @@ -0,0 +1,268 @@ + + + + 784 + 10A394 + 732 + 1027.1 + 430.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 60 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + + 1316 + + {320, 480} + + 1 + MSAxIDEAA + + NO + NO + + + + + + + 256 + {0, 0} + NO + YES + YES + + + YES + + + + + + RootViewController + + + + + + + + YES + + + delegate + + + + 4 + + + + window + + + + 5 + + + + navigationController + + + + 15 + + + + + YES + + 0 + + + + + + 2 + + + YES + + + + + -1 + + + File's Owner + + + 3 + + + + + -2 + + + + + 9 + + + YES + + + + + + + 11 + + + + + 13 + + + YES + + + + + + 14 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 11.IBPluginDependency + 13.CustomClassName + 13.IBPluginDependency + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + 9.IBEditorWindowLastContentRect + 9.IBPluginDependency + + + YES + UIApplication + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + RootViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + YES + + + YES + + + {{673, 376}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + TableViewPullAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + {{500, 343}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 15 + + + + YES + + RootViewController + UITableViewController + + IBProjectSource + Classes/RootViewController.h + + + + TableViewPullAppDelegate + NSObject + + YES + + YES + navigationController + window + + + YES + UINavigationController + UIWindow + + + + IBProjectSource + Classes/TableViewPullAppDelegate.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + TableViewPull.xcodeproj + 3 + 3.1 + + diff --git a/EGOTableViewPullRefresh/EgoTableViewResources.bundle/RootViewController.xib b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/RootViewController.xib new file mode 100755 index 0000000..d6924d1 --- /dev/null +++ b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/RootViewController.xib @@ -0,0 +1,377 @@ + + + + 784 + 10C540 + 759 + 1038.25 + 458.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 79 + + + YES + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {{554, 98}, {320, 247}} + + 3 + MQA + + YES + IBCocoaTouchFramework + NO + 1 + 0 + YES + 44 + 22 + 22 + + + + + YES + + + view + + + + 9 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 8 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 8.IBPluginDependency + + + YES + RootViewController + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 9 + + + + YES + + RootViewController + UITableViewController + + IBProjectSource + Classes/Controller/RootViewController/RootViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSNetServices.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPort.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSStream.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSXMLParser.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UIScrollView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIScrollView.h + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UITableView + UIScrollView + + IBFrameworkSource + UIKit.framework/Headers/UITableView.h + + + + UITableViewController + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITableViewController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../TableViewPull.xcodeproj + 3 + 79 + + + diff --git a/EGOTableViewPullRefresh/EgoTableViewResources.bundle/TableViewPull-Info.plist b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/TableViewPull-Info.plist new file mode 100755 index 0000000..3289444 --- /dev/null +++ b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/TableViewPull-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + + diff --git a/EGOTableViewPullRefresh/Resources/blackArrow.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/blackArrow.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/blackArrow.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/blackArrow.png diff --git a/EGOTableViewPullRefresh/Resources/blackArrow@2x.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/blackArrow@2x.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/blackArrow@2x.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/blackArrow@2x.png diff --git a/EGOTableViewPullRefresh/Resources/blueArrow.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/blueArrow.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/blueArrow.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/blueArrow.png diff --git a/EGOTableViewPullRefresh/Resources/blueArrow@2x.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/blueArrow@2x.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/blueArrow@2x.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/blueArrow@2x.png diff --git a/EGOTableViewPullRefresh/EgoTableViewResources.bundle/de.lproj/EGORefreshLocalizable.strings b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/de.lproj/EGORefreshLocalizable.strings new file mode 100644 index 0000000..8a83c6d --- /dev/null +++ b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/de.lproj/EGORefreshLocalizable.strings @@ -0,0 +1,10 @@ +/* + LocalizedString.strings + + Created by Marius Landwehr on 19.03.13. + +*/ +"Release to refresh..." = "Zum Aktualisieren loslassen…"; +"Pull down to refresh..." = "Zum Aktualisieren herunterziehen…"; +"Loading..." = "Lädt…"; +"Last Updated:" = "Zuletzt aktualisiert:"; \ No newline at end of file diff --git a/EGOTableViewPullRefresh/EgoTableViewResources.bundle/en.lproj/EGORefreshLocalizable.strings b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/en.lproj/EGORefreshLocalizable.strings new file mode 100644 index 0000000..9f308d6 --- /dev/null +++ b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/en.lproj/EGORefreshLocalizable.strings @@ -0,0 +1,10 @@ +/* + LocalizedString.strings + + Created by Marius Landwehr on 19.03.13. + +*/ +"Release to refresh..." = "Release to refresh…"; +"Pull down to refresh..." = "Pull down to refresh…"; +"Loading..." = "Loading…"; +"Last Updated:" = "Last Updated:"; \ No newline at end of file diff --git a/EGOTableViewPullRefresh/Resources/grayArrow.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/grayArrow.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/grayArrow.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/grayArrow.png diff --git a/EGOTableViewPullRefresh/Resources/grayArrow@2x.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/grayArrow@2x.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/grayArrow@2x.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/grayArrow@2x.png diff --git a/EGOTableViewPullRefresh/Resources/whiteArrow.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/whiteArrow.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/whiteArrow.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/whiteArrow.png diff --git a/EGOTableViewPullRefresh/Resources/whiteArrow@2x.png b/EGOTableViewPullRefresh/EgoTableViewResources.bundle/whiteArrow@2x.png similarity index 100% rename from EGOTableViewPullRefresh/Resources/whiteArrow@2x.png rename to EGOTableViewPullRefresh/EgoTableViewResources.bundle/whiteArrow@2x.png diff --git a/EGOTableViewPullRefresh/Resources/.DS_Store b/EGOTableViewPullRefresh/Resources/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/EGOTableViewPullRefresh/Resources/.DS_Store and /dev/null differ