OGeek|极客世界-中国程序员成长平台

标题: ios - UIRefreshControl 怪异 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:25
标题: ios - UIRefreshControl 怪异

今天刚开始使用“UIRefreshControl”,发现了一些奇怪的东西。

如果我在 InterfaceBuilder 中创建了 UIRefreshControl,并将其全部连接起来,我的选择器永远不会被调用。 IB 说控件应该触发“值已更改”消息,并且应该调用我的代码,但永远不会。

所以我放弃了在 Interface Builder 中执行此操作,而是决定在代码中执行此操作。没有太多的行。所以我把这段代码放在我的“viewDidLoad”例程中:

self.refreshControl = [UIRefreshControl new];
[self.refreshControl addTarget:self actionselector(doStuff forControlEvents:UIControlEventValueChanged];
NSMutableParagraphStyle* paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.alignment = NSTextAlignmentCenter;
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString"ull to refresh" attributes{NSParagraphStyleAttributeName : paragraphStyle}];

它画得很好,但是当 View 第一次出现时刷新控件是可见的。我希望它在用户实际拉下 table 之前不可见。我正在调用 Web 服务,等待结果返回,然后填充表格。因此,您只能看到一两秒钟的控件。但它看起来很奇怪。

所以,问题是:
1.这是一个已知的bug,你不能单独从Interface Builder中连接控件吗?
2. 有没有办法将此控件添加到 table-view Controller ,直到用户真正想看到它才出现?



Best Answer-推荐答案


你不需要添加一个刷新控件,或者在你的 viewController 中声明一个。添加下拉刷新是一个两步过程。
第 1 步:在 Storyboard 中,转到 tableViewController,然后在显示“刷新”的位置选择“启用”。
第 2 步:将以下代码添加到 tableViewController.m 文件的 viewDidLoad 中:

[self.refreshControl addTarget:self
                            actionselector(refresh)
                  forControlEvents:UIControlEventValueChanged];

这就是整个过程,除了在你的 -refresh 方法中做一些事情。没有更多的了。

关于ios - UIRefreshControl 怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15206205/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4