I experienced that garbage remains on the scrollView if you call refreshData.
The scrollview is not cleaned up while refreshing. I suggest to add these lines to refreshData method.
for(UIView *subview in [self.scrollView subviews])
if([subview isKindOfClass:[UIView class]])
[subview removeFromSuperview];