只要實現(xiàn)如下方法就可以實現(xiàn)你要的效果 ?非常簡單 ?也是最low的一種方法
CGFloat alpha;
CGFloat startContentOffsetX;
CGFloat willEndContentOffsetX;
CGFloat endContentOffsetX;
1. ?在你拖動的時候創(chuàng)建view ?并設(shè)置它的顏色
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{? ? //拖動前的起始坐標
startContentOffsetX = scrollView.contentOffset.x;
_ssssseeeeview = [[UIView alloc] initWithFrame:CGRectMake(startContentOffsetX, 0, 414, 736)];
_ssssseeeeview.backgroundColor = [UIColor grayColor];
_ssssseeeeview.alpha = 0;
[_scrollView addSubview:_ssssseeeeview];
}
2. ?在你滑動scrollview的時候讓它透明度變化
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
pageControl.currentPage = _scrollView.contentOffset.x/self.view.frame.size.width;
CGFloat size = _scrollView.contentOffset.x;
if ( startContentOffsetX== 0) {
alpha = size/self.view.frame.size.width;
}
else if (size<= startContentOffsetX? &&? size>=0 && startContentOffsetX<=self.view.frame.size.width )
{
alpha = 1-size/self.view.frame.size.width;
}
else if (? size>startContentOffsetX && size<=(startContentOffsetX+self.view.frame.size.width))
{
alpha = (size-startContentOffsetX)/self.view.frame.size.width;
}
else if ( size<=startContentOffsetX && size>= self.view.frame.size.width)
{
alpha = (startContentOffsetX-size)/self.view.frame.size.width;
}
if (size != startContentOffsetX) {
_ssssseeeeview.alpha = alpha;
}
}
3. 在你滑動將要停止的手刪除你所創(chuàng)建的view
#pragma mark -? 將要停止前的坐標
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
willEndContentOffsetX = scrollView.contentOffset.x;
[_ssssseeeeview removeFromSuperview];
if (_view != nil) {
[self buttonClick:(UIButton *)[self.view viewWithTag:1002]];
[_selecotView removeFromSuperview];
[_view removeFromSuperview];
}
}
#pragma mark - 減速停止(必須得有快速拖動的動作,scrollView滾動完畢(速度減為0)并且手已經(jīng)松開的時候調(diào)用)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
endContentOffsetX = scrollView.contentOffset.x;
}