0

我的应用程序中有一个滚动视图,我希望当用户向下滚动它时,它的 contentOffset.y 达到-50,滚动视图将动画到屏幕底部(此时滚动视图将不可见)。

我设法做到了这一点,但是当我将我的滚动视图动画化以使其再次可见时,它会丢失触摸事件并且不再滚动。

我已经尝试将 scrollEnabled 和 userInteractionEnabled 设置为 YES 但没有任何效果。如果有人可以提供帮助,我将不胜感激。

谢谢。

这是我将滚动视图动画到屏幕底部时的代码

[UIView animateWithDuration:0.5 animations:^
     {     
         CGRect scrollRect = self.scrollView.frame;
         CGRect newFrame = CGRectMake(scrollRect.origin.x, 367, scrollRect.size.width, self.scrollView.contentSize.height);
         self.scrollView.frame = newFrame;
     }
     completion:^(BOOL finished)
     {
         self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed:)] autorelease];
     }];

这是我让我的滚动视图再次可见的代码

[UIView animateWithDuration:0.5 animations:^
 {
     CGRect scrollRect = self.scrollView.frame;
     CGRect newFrame = CGRectMake(scrollRect.origin.x, 0, scrollRect.size.width, self.scrollView.contentSize.height);
     self.scrollView.frame = newFrame;
 }
 completion:^(BOOL finished)
 {
     self.navigationItem.leftBarButtonItem = nil;
     self.scrollView.scrollEnabled = YES;
     self.scrollView.userInteractionEnabled = YES;
     _canScroll = YES;
 }];

之后我不能再滚动它了。

4

1 回答 1

0

您将滚动视图高度设置为 self.scrollView.contentSize.height 因此滚动视图将无法垂直滚动。尝试将其更改为 self.scrollview.frame.height

于 2012-06-29T04:45:19.173 回答