Skip to content
This repository has been archived by the owner on May 8, 2020. It is now read-only.

Commit

Permalink
Improve scrolling performance by removing needless calls to the refre…
Browse files Browse the repository at this point in the history
…sh view
  • Loading branch information
danielctull committed Mar 27, 2012
1 parent bb69bdf commit a0479ca
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions DCTPullToRefreshController.m
Expand Up @@ -8,6 +8,12 @@

#import "DCTPullToRefreshController.h"

NSString * const DCTPullToRefreshStateString[] = {
@"DCTPullToRefreshStateIdle",
@"DCTPullToRefreshStatePulled",
@"DCTPullToRefreshStateRefreshing"
};

void* contentSizeContext = &contentSizeContext;

@interface DCTPullToRefreshController ()
Expand Down Expand Up @@ -69,10 +75,14 @@ - (void)setPulledValue:(CGFloat)newPulledValue {

pulledValue = newPulledValue;

if (self.state == DCTPullToRefreshStateIdle && pulledValue > 0.0f)
self.state = DCTPullToRefreshStatePulled;
if (self.state == DCTPullToRefreshStatePulled && pulledValue <= 0.0f)
self.state = DCTPullToRefreshStateIdle;

[self.refreshView pullToRefreshControllerDidChangePulledValue:self];
else if (self.state == DCTPullToRefreshStateIdle && pulledValue > 0.0f)
self.state = DCTPullToRefreshStatePulled;

if (self.state == DCTPullToRefreshStatePulled)
[self.refreshView pullToRefreshControllerDidChangePulledValue:self];
}

- (void)setState:(DCTPullToRefreshState)newState {
Expand Down Expand Up @@ -121,13 +131,19 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView {

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {

if (self.pulledValue > 1.0f)
if (self.state == DCTPullToRefreshStatePulled)
self.state = DCTPullToRefreshStateRefreshing;

else if (self.pulledValue > 0.0f)
else
self.state = DCTPullToRefreshStateIdle;
}

- (NSString *)description {
return [NSString stringWithFormat:@"<%@: %p; state = \"%@\">",
NSStringFromClass([self class]),
self,
DCTPullToRefreshStateString[self.state]];
}

#pragma mark - Internal

- (void)dctInternal_addRefreshView {
Expand Down

0 comments on commit a0479ca

Please sign in to comment.