scrollViewWillBeginDragging:未在UICollectionview中调用

时间:2015-07-28 12:09:07

标签: ios objective-c uicollectionview

我有一个UIView,其中有一个UICollectionview。要知道UICollectionview我使用scrollViewWillBeginDragging:的滚动距离,但它没有被调用。 示例代码是

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];

    if(translation.y > 0)
    {
        //dragging down
        _reusableview.backgroundColor = [UIColor blackColor];
    } 
    else
    {
        // dragging up
        _reusableview.backgroundColor = [UIColor clearColor];
    }
}

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

希望您已添加UIscrollViewDelegate并将UIcollectionView委托设置为该类。 然后在滚动collectionView时调用scrollViewWillBeginDragging()函数。

在函数内部,您可以确认scrollView是否为KindOfClass UICollectionView。

答案 1 :(得分:1)

UICollectionView是UIScrollView的子类。任何人都可以通过记住一些点来检测滚动视图的委托方法。

  1. 将类设置为滚动视图的委托 您可以在.h文件和.m文件
  2. 中执行此操作

    在.h文件中

    @interface DemoViewController : UIViewController<UIScrollViewDelegate>
    {
    
    }
    

    在.m文件中

    @interface SplashViewController ()<UIScrollViewDelegate>
    {
    
    }
    

    2。使该类的数据源和委托视图成为该类。 例如:

    collectionView.delegate = self;
    collectionView.dataSource = self;
    

    尝试以上步骤。 希望它对你有用。