Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 有水平控制吗?_Objective C_Uiscrollview_Ios6_Uikit_Uirefreshcontrol - Fatal编程技术网

Objective c 有水平控制吗?

Objective c 有水平控制吗?,objective-c,uiscrollview,ios6,uikit,uirefreshcontrol,Objective C,Uiscrollview,Ios6,Uikit,Uirefreshcontrol,您可以通过以下方式将UIRefreshControl添加到UICollectionView(或任何UIScrollView): 当集合视图布局已更改时,此选项不起作用 我试图覆盖layoutSubviews以将刷新控件置于左侧,但它无法以这种方式跟踪滚动进度。我可以欺骗它使用水平布局吗?我找不到任何现有的解决方案,所以我扩展了水平布局支持: 我需要MonoTouch(C#)的解决方案,所以我从源代码移植ODRefreshControl开始,然后使用水平布局 完整的C#源代码是,将其移植回目标C

您可以通过以下方式将
UIRefreshControl
添加到
UICollectionView
(或任何
UIScrollView
):

当集合视图布局已更改时,此选项不起作用


我试图覆盖
layoutSubviews
以将刷新控件置于左侧,但它无法以这种方式跟踪滚动进度。我可以欺骗它使用水平布局吗?

我找不到任何现有的解决方案,所以我扩展了水平布局支持:

我需要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");

    }
}

也许我是保守的,但尽管您可以通过这种方式添加此视图并使其工作,但我不认为它是为此而设计的,文档中确实明确将其链接到UITableView。@Daniel虽然这是事实,我看到很多人都这么做,这让我觉得苹果很可能会让这种事实上的工作行为正式化。我也没有看到一篇帖子说他们的应用程序因为使用
UIRefreshControl
而被拒绝,因为没有表视图。嗨,你能提供你的扩展代码和objective-c吗?谢谢大家!@Dan请提供您在Obj-C中创建的代码
- (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");

    }
}