ios scrollViewDidEndDecelerating不能正常工作UICollectionView,但适用于UITableView

时间:2014-05-17 09:43:55

标签: ios objective-c uicollectionview

我正在使用“scrollViewDidEndDecelerating”来加载更多数据当用户转到列表数据滚动器和同一页面时(在此页面上)我正在使用UICollectionView并且当用户转到最后时也一样页面加载更多数据 但 scrollViewDidEndDecelerating 不适用于UICollectionView请帮忙 这是我的代码 我认为 scrollViewDidEndDecelerating 适用于UICollexction和Tableview,但是当我尝试再添加一个SCrollerViewDidEndDec时,这会返回一个错误,因为我已经在一次定义了

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
    if (endScrolling >= scrollView.contentSize.height)
    {
        HUD = [[MBProgressHUD alloc] initWithView:self.view];
        HUD.frame = CGRectMake(95, 330, 140, 150);
        HUD.labelText = @"Load More ...";
        HUD.detailsLabelText = @"Load More ...";
        HUD.mode = MBProgressHUDModeIndeterminate;

        [HUD show:YES];

        [self.view addSubview:HUD];

        fromValue =fromValue+4; //[NSString stringWithFormat:@"%d", endvalue];

        [self getdata2];
    }
}

1 个答案:

答案 0 :(得分:2)

您应该同时实施scrollViewDidEndDeceleratingscrollViewDidEndDragging:willDecelerate:

完整的解决方案包括检查willDecelerate是否为NO并调用scrollViewDidEndDecelerating中的相同逻辑 - 如果您在没有减速的情况下停止滚动,则会调用此委托方法

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    if (!decelerate) {
        // preloading logic
    }
}