实现一个水平的 UIRefreshControl

Posted

技术标签:

【中文标题】实现一个水平的 UIRefreshControl【英文标题】:Implement a horizontal UIRefreshControl 【发布时间】:2013-03-30 21:35:52 【问题描述】:

我如何去实现一个 UIRefreshControl,当从左侧或右侧拉出时它会刷新??

标准的 UIRefreshControl 可以吗?或者是否有任何 API 可以创建这种效果?我一直在寻找很多线索,但我找不到任何东西。

我只能找到this SO 上的答案,但它是用我不太熟悉的 C# 编写的。

【问题讨论】:

【参考方案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_];

请务必记住将内容再次向相反方向旋转!

【讨论】:

实际上我会使用不带表格视图的 UIRefreshControl。像这样***.com/a/12502450/593336 另外,我很好奇只是旋转它不会影响 UIRefreshControl 的任何效果或图像? 您可以将 UIRefreshControl 添加为 UITableView 的子视图(如链接的帖子中所示),但不能添加到常规 UIView。如果添加到 UITableView 而不是 UITableViewController,那么只需在 UITableView 上执行转换 好的。实际上,我正在寻找 UIScrollView 的下拉刷新功能,但从左侧,而不是从顶部。旋转 tableview/scrollview 也会旋转其中的项目,这是我不想要的,因为我已经有一个水平 UIScrollView 这就是我需要再次旋转内容的意思。您必须将单元格的转换设置为 (M_PI / 2) - 或者在执行此操作的位置创建自己的 UITableViewCell 派生类。【参考方案2】:

对此没有默认的刷新控制。您必须创建自定义刷新控件才能获得此行为。

【讨论】:

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

以上是关于实现一个水平的 UIRefreshControl的主要内容,如果未能解决你的问题,请参考以下文章

实现一个水平的 UIRefreshControl

如何实现水平滚动的标签?

实现div内容水平垂直居中

如何实现顶部带有标题的水平滚动集合视图?

html中表格水平和垂直滚动,表头垂直不动,可以水平滚动,大神们请问怎么实现啊?

css 实现DIV水平垂直居中于屏幕