RobertWalsh / PullToRefreshView

dead simple pull to refresh

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PullToRefreshView

It is:
 - a pull-to-refresh implementation
 - very easy to implement
 - doesn't suck

To implement it:
 - add the three files (PullToRefreshView.{h,m} and arrow.png) to your project
 - #import "PullToRefreshView.h"
 - add an ivar: PullToRefreshView *pull; // or whatever you want to name it
 - in loadView or viewDidLoad, add this (and be sure to release in dealloc/viewDidUnload, etc):
    pull = [[PullToRefreshView alloc] initWithScrollView:<your scroll view here>];
    [pull setDelegate:self];
    [<your scroll view here> addSubview:pull];
 - implement two delegate methods:
    // called when the user pulls-to-refresh
    - (void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view;
    // called when the date shown needs to be updated, optional
    - (NSDate *)pullToRefreshViewLastUpdated:(PullToRefreshView *)view;
 - call -finishedLoading on the PullToRefreshView when you finished loading (or got an error, etc)
 - that's it! no need to forward on UIScrollView delegate methods or anything silly like that.
    
Fork by iStopped :) In order to use this class with a UIWebView
 - add the three files (PullToRefreshView.{h,m} and arrow.png) to your project
 - #import "PullToRefreshView.h"
 - in loadView or viewDidLoad add this:
   	UIWebView *webView = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)] autorelease];
   	webView.delegate = self;
	webView.tag = 999;
	NSURLRequest *request;
   	//fill request
	[webView loadRequest:request];
   	[webView setScalesPageToFit:YES];
   	UIScrollView* currentScrollView;
 	for (UIView* subView in webView.subviews) {
		if ([subView isKindOfClass:[UIScrollView class]]) {
			currentScrollView = (UIScrollView *)subView;
			currentScrollView.delegate = self;
		}
	}
	PullToRefreshView *pull = [[[PullToRefreshView alloc] initWithScrollView:currentScrollView] autorelease];
	[pull setDelegate:self];
	pull.tag = 998;
	[currentScrollView addSubview:pull];
   	[self.view addSubview:webView];
 - Add the delegate -(void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view;:
  -(void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view {
    [(UIWebView *)[self.view viewWithTag:999] reload];
  }
 - Add the delegate -(void)webViewDidFinishLoad:(UIWebView *)webView;:
  -(void)webViewDidFinishLoad:(UIWebView *)webView  
  {
	[(PullToRefreshView *)[self.view viewWithTag:998] finishedLoading];
  }
 - Have Fun ;)

About

dead simple pull to refresh


Languages

Language:Objective-C 100.0%