PaperFold-for-iOS icon indicating copy to clipboard operation
PaperFold-for-iOS copied to clipboard

Top-Fold Bug - Unable to scroll centerfold after top-fold

Open jpcguy89 opened this issue 12 years ago • 2 comments

I've been experimenting with the...err...experimental...top-fold, and thought I'd try and help out by reporting the bugs I run into. If I slide to to the topFoldView and return to the centerTableView, I cannot get it to re-enable scrolling in that view.

I've tried all of the various combinations of enabling and disabling the topFoldView and bottomFoldView, together with sending setScrollEnabled:YES to centerTableView with no luck.

jpcguy89 avatar Oct 31 '12 15:10 jpcguy89

Thanks. Knew I should wait first before merging into master :p

On Wed, Oct 31, 2012 at 11:51 PM, Joe Cavallaro [email protected]:

I've been experimenting with the...err...experimental...top-fold, and thought I'd try and help out by reporting the bugs I run into. If I slide to to the topFoldView and return to the centerTableView, I cannot get it to re-enable scrolling in that view.

I've tried all of the various combinations of enabling and disabling the topFoldView and bottomFoldView, together with sending setScrollEnabled:YES to centerTableView with no luck.

— Reply to this email directly or view it on GitHubhttps://github.com/honcheng/PaperFold-for-iOS/issues/27.

honcheng avatar Oct 31 '12 15:10 honcheng

Hey i did notice the same bug today and tried to fix it in a very short way. Probably you can use some of it :)

In your RootViewController add the a class Variable and the following function:

float lastContentOffset;
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

    int scrollDirection;

    if (lastContentOffset > scrollView.contentOffset.y && scrollView.contentOffset.y <= 0) {
        [self.centerTableView setScrollEnabled:NO];
    }
    lastContentOffset = scrollView.contentOffset.y;
}

This will let you unfold you topFold when you are scrolling up.

Then in your PaperFoldView.m find the following function

- (void)animateWithContentOffset:(CGPoint)point panned:(BOOL)panned

and replace the last else compound with the following:

else
 {
     [self.contentView setTransform:CGAffineTransformMakeTranslation(0, 0)];
     [self.bottomFoldView unfoldWithParentOffset:y];
     [self.topFoldView unfoldWithParentOffset:y];
     self.state = PaperFoldStateDefault;

      if ([self.delegate respondsToSelector:@selector(paperFoldView:viewDidOffset:)])
      {
         [self.delegate paperFoldView:self viewDidOffset:CGPointMake(0,y)];
      }

       for (UIView *view in self.contentView.subviews) {
          if([view isKindOfClass:[UITableView class]]){
              [(UITableView*)view setScrollEnabled:YES];
           }
        }
 }

This will enabled the scrolling back when you close your topFold.

Hope this helps and is comprehensible ;)

mwermuth avatar Nov 05 '12 14:11 mwermuth