2013-03-30 33 views
2

我该如何去执行UIRefreshControl,当从左侧或右侧拉动时会刷新?执行水平UIRefreshControl

标准UIRefreshControl有可能吗?或者是否有任何API来创建这种效果?我一直在寻找很多东西来获得一些优势,但我无法找到任何东西。

我能找到的所有答案都是this,但它是用C#编写的,我对此不太了解。

回答

-1

这里没有默认的刷新控制。你必须创建自定义的refreshcontrol来获得这种行为。

+0

是的,我知道我必须创建一个自定义的。我的问题是如何制作一个? – mayuur

1

您可以使用旋转90度的UITableViewController。在安装过程中,在UITableViewController类中添加[self.view setTransform:CGAffineTransformMakeRotation(-M_PI/2)];

例使用的UITableView(而不是UITableViewController中):

table_ = [[UITableView alloc] initWithFrame:self.bounds]; 
[table_ setDelegate:self]; 
[table_ setDataSource:self]; 
[table_ registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"]; 
[table_ setTransform:CGAffineTransformMakeRotation(-M_PI/2)]; 

UIRefreshControl *ctrl = [[UIRefreshControl alloc] init]; 
[ctrl setBackgroundColor:[UIColor yellowColor]]; 
[table_ addSubview:ctrl]; 

[self addSubview:table_]; 

请务必记得在相反的方向再次旋转内容!

+0

其实我会使用没有tableview的UIRefreshControl。像这样的东西http://stackoverflow.com/a/12502450/593336另外,我很好奇,只是旋转它不会影响UIRefreshControl的任何效果或图像? – mayuur

+0

您可以将UIRefreshControl添加为UITableView的子视图(如在链接的帖子中),但不添加到常规的UIView。如果添加到UITableView而不是UITableViewController,那么只需在UITableView –

+0

上执行转换即可。实际上,我正在寻找UIScrollView的Pull-to-refresh功能,但是从左侧开始,而不是从顶部开始。旋转tableview/scrollview也会旋转它内部的项目,我不想要,因为我已经有一个水平的UIScrollView – mayuur