是否有水平UIRefreshControl?(Is there a horizontal UIRef

2019-08-03 20:29发布

您可以添加UIRefreshControlUICollectionView (或任何UIScrollView通过为此事) 将它添加到集合的子视图 :

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:refreshControl];

当集合视图布局有这不起作用UICollectionViewScrollDirectionHorizontal

我试图重写layoutSubviews把刷新控制到左侧,但它不会跟踪滚动进步这种方式。 我可以欺骗它与横向布局工作?

Answer 1:

我找不到任何现有的解决方案,所以我延长ODRefreshControl与横向布局的支持:

我需要在溶液MonoTouch的(C#),所以我开始由源移植ODRefreshControl然后修补它的工作与水平布局。

完整的C#源代码是在这里 ,它应该是简单的将其移植回目的C.
我所做的只是添加一个效用函数和一些条件,在这里和那里。



Answer 2:

您可以通过实现UIScrollViewDelegate方法实现这一目标

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
     CGPoint offset = scrollView.contentOffset;
     CGRect bounds = scrollView.bounds;
     CGSize size = scrollView.contentSize;
     UIEdgeInsets inset = scrollView.contentInset;
     float y = offset.x + bounds.size.width - inset.right;
     float h = size.width;


    float reload_distance = 75; //distance for which you want to load more
    if(y > h + reload_distance) {
       // write your code getting the more data
       NSLog(@"load more rows");

    }
}


文章来源: Is there a horizontal UIRefreshControl?