From 94a1cc4264e2784603b8d9123394cf98d635d1d0 Mon Sep 17 00:00:00 2001 From: Kyle Fang Date: Tue, 26 Feb 2013 14:16:56 +0800 Subject: [PATCH] Init version --- ZGPullDragTableView/DemoTableViewController.m | 51 +++++- .../en.lproj/MainStoryboard.storyboard | 99 ++++++++++- .../UITableView+ZGPullDrag.h | 15 ++ .../UITableView+ZGPullDrag.m | 159 ++++++++++++++++++ 4 files changed, 311 insertions(+), 13 deletions(-) diff --git a/ZGPullDragTableView/DemoTableViewController.m b/ZGPullDragTableView/DemoTableViewController.m index ecd1952..4547179 100644 --- a/ZGPullDragTableView/DemoTableViewController.m +++ b/ZGPullDragTableView/DemoTableViewController.m @@ -8,7 +8,9 @@ #import "DemoTableViewController.h" -@interface DemoTableViewController () +#import "UITableView+ZGPullDrag.h" + +@interface DemoTableViewController () @end @@ -34,12 +36,49 @@ - (void)viewDidLoad { [super viewDidLoad]; + UIView *pullView = [[UIView alloc] initWithFrame:CGRectMake(-320, 0, 320, 80)]; + pullView.backgroundColor = [UIColor greenColor]; + pullView.alpha = 0; + [self.tableView addZGPullView:pullView]; + self.tableView.ZGPullViewDelegate = self; + + UIView *dragView = [[UIView alloc] initWithFrame:CGRectMake(320, 0, 320, 80)]; + dragView.backgroundColor = [UIColor greenColor]; + dragView.alpha = 0; + [self.tableView addZGDragView:dragView]; + self.tableView.ZGDragViewDelegate = self; +} - // Uncomment the following line to preserve selection between presentations. - // self.clearsSelectionOnViewWillAppear = NO; - - // Uncomment the following line to display an Edit button in the navigation bar for this view controller. - // self.navigationItem.rightBarButtonItem = self.editButtonItem; +- (void)pullView:(UIView *)pullView Show:(CGFloat)shownPixels ofTotal:(CGFloat)totalPixels{ + CGFloat progress = MIN(shownPixels / totalPixels, 1.f); + pullView.alpha = progress; + CGRect frame = pullView.frame; + frame.origin.x = -320+320*progress; + pullView.frame = frame; +} + +- (void)pullView:(UIView *)pullView hangForCompletionBlock:(void (^)())completed{ + int64_t delayInSeconds = 2.0; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + completed(); + }); +} + +- (void)dragView:(UIView *)dragView Show:(CGFloat)showPixels ofTotal:(CGFloat)totalPixels{ + CGFloat progress = MIN(showPixels/totalPixels, 1.f); + dragView.alpha = progress; + CGRect frame = dragView.frame; + frame.origin.x = 320-320*progress; + dragView.frame = frame; +} + +- (void)dragView:(UIView *)dragView hangForCompletionBlock:(void (^)())completed{ + int64_t delayInSeconds = 2.0; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + completed(); + }); } @end diff --git a/ZGPullDragTableView/en.lproj/MainStoryboard.storyboard b/ZGPullDragTableView/en.lproj/MainStoryboard.storyboard index a6ee671..f34fb3b 100644 --- a/ZGPullDragTableView/en.lproj/MainStoryboard.storyboard +++ b/ZGPullDragTableView/en.lproj/MainStoryboard.storyboard @@ -22,7 +22,7 @@ -