Ios UIScrollView在拖动最后一页时淡出

Ios UIScrollView在拖动最后一页时淡出,ios,uiscrollview,Ios,Uiscrollview,我正在用最新的SDK开发一个iOS 7应用程序 我有一个UIScrollView,里面有三个ImageViews。UIScrollView将其contentSize设置为{960568}(每个ImageView都有一个{320958}`大小) 我可以完美地拖动这三幅图像,但当用户在最后一幅图像上从右向左拖动时,我想隐藏UIScrollView 为此,我使用了UIScrollViewDelegate: - (void)scrollViewDidScroll:(UIScrollView *)scro

我正在用最新的SDK开发一个iOS 7应用程序

我有一个
UIScrollView
,里面有三个
ImageView
s。
UIScrollView
将其
contentSize
设置为
{960568}
(每个
ImageView
都有一个{320958}`大小)

我可以完美地拖动这三幅图像,但当用户在最后一幅图像上从右向左拖动时,我想隐藏
UIScrollView

为此,我使用了
UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.x > 640)
        scrollView.hidden = YES;
}
但是这段代码会立即隐藏它,我想显示以下效果:

  • 在图像淡出时,继续从右向左拖动图像
我该怎么做?

[UIView animateWithDuration:0.3 animations:^{
     self.scrollView.alpha = 0.0;
 } completion:^(BOOL finished) {
     // remove the scrollView from your view
      if(finished) {
          [self.scrollView removeFromSuperview];
       }
 }];

希望这将有助于

如果希望淡入效果与内容偏移成比例,请使用以下方法:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.x > 640)
    {
        scrollView.alpha = 1 / (scrollView.contentOffset.x - 639);
    }

    // then remove / hide the view completely at a particular offset
    // ....

}
您可以更改分割以使动画更平滑/更不平滑。这是更平滑的:

scrollView.alpha = 2 / (scrollView.contentOffset.x - 638);

应用UIView动画块封闭scrollView.alpha=0,并在完成时从SuperView移除(如果您可以接受我的答案),因此它也可以帮助其他人使用您的代码,无需任何修改,效果非常好,但如果我添加:
[scrollView removeFromSuperview]它消失得很快。仍然发生。如果我不将其从superview中删除,它将工作得非常好。为什么我需要将其从superview中删除?您可以保留它,这取决于您的代码。然后通过将self.scrollView.alpha=1淡入淡入