您可以添加UIRefreshControl
到UICollectionView
(或任何UIScrollView
通过为此事) 将它添加到集合的子视图 :
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:refreshControl];
当集合视图布局有这不起作用UICollectionViewScrollDirectionHorizontal
。
我试图重写layoutSubviews
把刷新控制到左侧,但它不会跟踪滚动进步这种方式。 我可以欺骗它与横向布局工作?
我找不到任何现有的解决方案,所以我延长ODRefreshControl
与横向布局的支持:
我需要在溶液MonoTouch的(C#),所以我开始由源移植ODRefreshControl然后修补它的工作与水平布局。
完整的C#源代码是在这里 ,它应该是简单的将其移植回目的C.
我所做的只是添加一个效用函数和一些条件,在这里和那里。
您可以通过实现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");
}
}